2015-07-28 10 views
5
$(".filter-close").click(function(){ 
    $(this).parent().remove(); 

}); 

ten fragment działa w konsoli, ale nie w tagach skryptu ani w dołączonym pliku js.Kod jquery działa na konsoli, ale nie w znacznikach script lub w dołączonym pliku js

+0

proszę przynajmniej kopia + wklej kod strony używasz go na i kliknij F12, aby sprawdzić, czy nie ma błędów w konsoli programisty. –

+0

Jaki błąd pojawia się po uruchomieniu w znaczniku script lub dołączonym pliku js? – D4V1D

+1

Głupiutko, ale dlaczego to pytanie ma dwa przeboje? –

Odpowiedz

7

czekać na DOM być gotowy, gdy dzwoni telefon 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(); 
    }); 
}); 

przy użyciu innej biblioteki JavaScript, chcemy zadzwonić $ .noConflict(), aby uniknąć trudności nazw. Kiedy ta funkcja jest wywoływana, skrót $ nie jest już dostępny, co zmusza nas do pisania jQuery za każdym razem, gdy normalnie piszemy $. Jednak procedura przekazana do metody .ready() może przyjąć argument, który jest przekazywany do globalnego obiektu jQuery. Oznacza to, że możemy zmienić nazwę obiektu w kontekście naszej .ready() Ładowarka bez wpływu na inne kody

Documentation for .ready() method

+0

Ponieważ OP działa w konsoli, możemy założyć, że '$' odnosi się już do jQuery, ale to wciąż dobra informacja –

+1

@ A.Wolff: Jasne, chciałem tylko wskazać coś innego. nie wspomnę :) – D4V1D

-1

Może element z klasą filter-close nie istnieje w DOM w czasie wywoływania tej funkcji. Przypuszczam, że dynamicznie dodajesz elementy do DOM. Jesteś?

+0

To nie jest odpowiedź, to tylko komentarz. – D4V1D

+1

Myślę, że to jedno i drugie. –

+0

@UjwalRatra - może to być jedno i drugie, ale jasne jest, że odpowiedź musi odpowiedzieć na pytanie, jeśli zawierasz przykład kodu, co zrobić, jeśli został on dodany dynamicznie, to może jest to odpowiedź - w przeciwnym razie jest to tylko komentarz –

2

Może to być problem polegający na nieobecności 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 robi próby wywołania kodu w celu dodania obsługi przed DOM staje się podobny do onload.

Documentation for JQuery .ready() method

Istnieją również potencjalne konflikty biblioteki (patrz @ D4V1D odpowiedzią na przykład, że), ale nie możemy powiedzieć na pewno, nie znając wiadomość co błędzie pojawia się w konsoli (jeśli istnieje) i idealnie więcej o otaczającym kodzie.

Proszę nacisnąć klawisz F12 i zobaczyć, co jest drukowane w konsoli i/lub panelu sieci, lub google "BrowserName dev console", jeśli F12 nic nie robi.

Ale, jak powiedział, że to działa w konsoli, więc zakładam, że myśli konsoli dev i że jest to w rzeczywistości tylko kwestia rozrządu, więc mało prawdopodobne, konflikt (choć nadal może składni błędu gdzieś indziej na stronie)

Powiązane problemy