Přidání logiky po kliknutí na ajaxový odkaz

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Lukeluha
Člen | 130
+
0
-

Ahoj,

používám plugin od Vojty Dobeše https://componette.org/search/?… pro obsluhu ajaxových požadavků.

Dle příkladů a tutoriálů jsem zkombinoval snippety a tento plugin, takže po kliknutí na požadovaný odkaz mi vše krásně funguje. Zároveň jsem si chtěl přidělat nějakou funkčnost po kliknutí na odkaz (např. pokud je odkaz tlačítko, tak jej zešedivět, atd.), proto jsem udělal něco takového:

$(".myAjax").click(function(){
        if ($(this).hasClass('button')) {
            $(this).addClass('disabled');
            $(this).text("Počkejte...");
        }

        var url = $(this).attr('href')

        $.nette.ajax({
            'url': url
        })

        return false;
})

Což mi funguje také dobře. Nicméně mám také snippet pro live search a pokud odkazům v tomto snippetu přidám mou novou třídu .myAjax tak mi kliknutí výše uvedený handler nezachytí a nevím proč. Tento problém se děje pouze pokud začnu něco vyhledávat a live search něco provede (vyfiltruje mi položky v tabulce). Pokud nevyhledám nic, tak mi také vše funguje.

Nevím, jestli je to spíš obecná JS věc nebo se dá elegantněji přidat chování při kliknutí přímo k tomuto pluginu.

Přede díky moc za odpovědi.

F.Vesely
Člen | 369
+
0
-

Je to kvuli tomu, ze ten prvek neexistuje pri nacteni stranky, ale je tam dynamicky pridan ajaxem. Proto pouzij misto:

$(".myAjax").click(function(){...});

toto:

$("body").on('click','.myAjax',function(){...});

Editoval F.Vesely (6. 4. 2015 21:32)

Lukeluha
Člen | 130
+
0
-

Super, díky moc :)