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.