/ / Jak powiązać zdarzenia javascript po zmianach DOM - javascript, jquery, effects

Jak powiązać zdarzenia javascript po zmianach DOM - javascript, jquery, effects

Mam funkcję, która łączy się z tagiem tr, aby zapewnić efekt mouseover w następujący sposób:

$ (".net tr"). bind ("mouseenter", function () { $ (this) .addClass ("hover"); }). bind ("mouseleave", function () { $ (this) .removeClass ("hover"); });

Problem polega na tym, że siatka jest ładowana przez ajax, kiedywywołanie stronicowania lub filtrowanie itp. Powoduje to całkowite zastąpienie siatki i zawieszenie wszystkich powiązań zdarzeń. Czy istnieje sposób powiązania zdarzenia, które automatycznie dołącza się do pasujących elementów, nawet gdy zmienia się DOM?

Dzięki!

Odpowiedzi:

4 dla odpowiedzi № 1

$.live jest to, czego chcesz:

$(".grid tr").live("mouseenter", function () { $(this).addClass("hover"); }).bind("mouseleave", function () { $(this).removeClass("hover"); });

3 dla odpowiedzi № 2

Proszę użyć .on() od teraz, jako .live() jest przestarzałe w jQuery, ponieważ jest nieefektywne.

$(".grid tr")
.on("mouseenter", function () { $(this).addClass("hover"); })
.on("mouseleave", function () { $(this).removeClass("hover"); });

0 dla odpowiedzi № 3

Ewentualnie możesz użyć $.delegate

Więcej informacji: jaka jest najlepsza praktyka wiązania zdarzenia kliknięcia jQuery do każdego znacznika zakotwiczenia w każdym wierszu tabeli