/ / Kod jquery działa na konsoli, ale nie w znacznikach skryptów ani w załączonym pliku js - jquery, kliknij

Kod jquery działa na konsoli, ale nie w znacznikach skryptów ani w załączonym pliku js - jquery, kliknij

$(".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 № 1

Poczekaj, 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ś?