Jak zastąpić „live” z jQuery 1.8.3 na jQuery 1.9? [duplikować]
To pytanie ma już tutaj odpowiedź:
Włączanie live () do on () w jQuery 5 odpowiedziMoje środowisko WWW automatycznie zaktualizowało mój skrypt jQuery do najnowszej wersji, 1.9.
Teraz wszyscy moi:
$(".myclass").live("click", function() {...
nie pracuj już. Użyłem go głównie z niektórymi ajaxami, które wypełniły HTML na mojej stronie.
Wiedziałbym, jak zastąpić tę funkcjonalność w ostatniej wersji. Przyjaciel powiedział mi, żebym zamiast tego użył „on”, ale „on” pozostaje na tym samym elemencie.
Objaśnienie: w tym przykładzie (bez ajax) używam ikony „+”, aby wyświetlić listę „ul li”.
$(".closed").live('click', function(){
$("#ul_list_"+$(this).attr('id')).addClass("displayed").removeClass("hidden").show();
$(this).addClass("openned").removeClass('closed');
$(this).html('<i class="icon-minus"></i>');
});
$(".openned").live('click', function(){
$("#ul_list_"+$(this).attr('id')).addClass("hidden").removeClass("displayed").hide();
$(this).addClass("closed").removeClass('openned');
$(this).html('<i class="icon-plus"></i>');
});
(Wiem, że skrypt nie jest najbardziej zoptymalizowany, ale zadziałał. Użyłem klas do otwarcia lub zamknięcia list. A jeśli użytkownik nie ma włączonego JS, nic nie jest ukryte, wszystkie złożone listy są otwierane)
Uwagi:
próbowałemhttps://github.com/jquery/jquery-migrate, ale jedyną wiadomością, którą mam, jest „JQMIGRATE: jQuery.fn.live () jest przestarzałe”, a nie jak to naprawić.