$(".filter-close").click(function(){
$(this).parent().remove();
});
ten fragment kodu działa w konsoli, ale ani w znacznikach skryptu, ani w dołączonym pliku js.
Odpowiedzi:
7 dla odpowiedzi № 1Poczekaj, aż DOM będzie gotowy podczas wywoływania procedury obsługi zdarzeń:
jQuery(function($) { // this does the trick and also makes sure jQuery is not conflicting with another library
$(".filter-close").click(function(){
$(this).parent().remove();
});
});
Korzystając z innej biblioteki JavaScript, możemychcesz wywołać $ .noConflict (), aby uniknąć problemów z przestrzenią nazw. Po wywołaniu tej funkcji skrót $ nie jest już dostępny, co zmusza nas do pisania jQuery za każdym razem, gdy normalnie piszemy $. Jednak program obsługi przeszedł do.Metoda ready () może przyjąć argument, który jest przekazywany do globalnego obiektu jQuery. Oznacza to, że możemy zmienić nazwę obiektu w kontekście naszego programu obsługi .ready () bez wpływu na inny kod
Dokumentacja dla .ready()
metoda
2 dla odpowiedzi nr 2
Problemem może być nieobecność w DOM, gdy dołączony jest moduł obsługi zdarzeń.
Spróbuj czegoś takiego:
$( document ).ready(function() {
// Handler for .ready() called.
$(".filter-close").click(function(){
$(this).parent().remove();
});
});
$ .Ready () (link poniżej) zapewnia, że nie próbuje wywołać kodu, aby dodać moduł obsługi przed renderowaniem DOM, podobnie jak OnLoad.
Dokumentacja dla JQuery .ready()
metoda
Istnieją również potencjalne konflikty biblioteczne (patrz@ D4V1D na przykład odpowiedź), ale nie możemy powiedzieć na pewno, nie wiedząc, jaki komunikat o błędzie pojawia się w konsoli (jeśli istnieje), a najlepiej o otaczającym kodzie.
Proszę nacisnąć F12 i zobaczyć, co jest drukowane w konsoli i / lub panelu sieci, lub przejść do Google „BrowserName dev console”, jeśli F12 nic nie robi.
Ale, jak powiedziano, działa w konsoli, więc zakładam, że masz na myśli konsolę programistyczną i że w rzeczywistości jest to tylko problem z taktowaniem, więc mało prawdopodobny konflikt (choć nadal może błąd składniowy gdzieś indziej na stronie)
-1 dla odpowiedzi nr 3
Może element z filter-close
klasa nie istnieje w DOM w momencie wywołania tej funkcji. Przypuszczam, że dodajesz elementy do DOM dynamicznie. Jesteś?