http://unicorn.host22.com/tmp/index.html
EDIT: Wrzuciłem na stronę, ale ajax nie działa z jakiegoś powodu. U mnie na dysku działa pięknie.
jquery-1.10.1
Kod:
<div class="tester">
CLICK FOR ALERT + AJAX
</div>
W index.html oraz ajax.html ^
Kod:
<script>
$(document).ready(function() {
$("body").on("click", ".tester", function() {
$(".tester").each( function() {
alert("test");
});
});
$(".tester").on("click", function() {
$.ajax({
type: "POST",
url: "ajax.html",
success: function(data) {
$("body").append(data);
},
dataType: "html"
});
});
});
</script>
W index.html ^
Przykład:
Klikniesz na pierwszy div:
Dostaniesz 1x alert "test".
Uruchomi się skrypt ajax, teraz masz 2 divy.
1. Jeżeli klikniesz w pierwszy div:
- 2x alert, each działa prawidłowo.
- uruchomi się ajax, teraz widzisz 3 divy.
2. Jeżeli klikneisz w drugi div:
- 2x alert, each działa prawidłowo.
- koniec. brak ajaxa, bo nowy element nie ma zdarzenia onclick - ajax.
Kiedyś do tego służyło w jquery .delegate co oznacza, że zdarzenie zostanie przypisane do wszystkich elementów spełniających warunek w tej chwili oraz w przyszłości.
Być może to jest problemem.
Zakładki