Korzystam z jQuery v.1.7.1, gdzie metoda .live () jest najwyraźniej przestarzała.
Problemem jest to, że podczas dynamicznego ładowania HTML do elementu przy użyciu:
$('#parent').load("http://...");
Jeśli spróbuję później dodać zdarzenie kliknięcia, nie rejestruje ono zdarzenia przy użyciu jednej z następujących metod:
$('#parent').click(function() ...);
lub
// according to documentation this should be used instead of .live()
$('#child').on('click', function() ...);
Jaki jest właściwy sposób na osiągnięcie tej funkcjonalności? Wydaje się, że działa tylko z .live () dla mnie, ale nie powinienem używać tej metody. Zauważ, że #child jest dynamicznie ładowanym elementem.
Dzięki.
.live()
ci, jak przepisać istniejące zastosowania .live()
użycia .delegate()
lub .on()
(w zależności od tego, czy korzystasz z wersji 1.7+, czy nie). Pamiętaj jednak, że jeśli dodasz moduł obsługi z .click()
„później”, jak wspomniałeś, tj. Po dynamicznym ładowaniu elementów, powinien on działać - jedynym problemem jest próba przypisania go .click()
przed dynamicznym ładowaniem elementów.