Kod:
<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
<script type="text/javascript">
$("#clicker").click(function () {
alert("Hello!");
$(".hide_div").hide();
});
</script>
Powyższy kod nie działa. Kiedy klikam #clicker, nie ostrzega i się nie ukrywa. Sprawdziłem konsolę i nie dostaję żadnych błędów. Sprawdziłem też, czy ładuje się JQuery i rzeczywiście tak jest. Więc nie jestem pewien, na czym polega problem. Zrobiłem również funkcję gotowości dokumentu z ostrzeżeniem, która zadziałała, więc nie jestem pewien, co robię źle. Proszę pomóż. Dzięki!
javascript
jquery
onclick
click
onclicklistener
starbucks
źródło
źródło
Odpowiedzi:
Powinieneś dodać kod javascript w
$(document).ready(function() {});
bloku.to znaczy
Jak stwierdza dokumentacja jQuery : „Nie można bezpiecznie manipulować stroną, dopóki dokument nie będzie„ gotowy ”. JQuery wykryje ten stan gotowości. Kod zawarty w środku
$( document ).ready()
zostanie uruchomiony tylko wtedy, gdy strona Document Object Model (DOM) będzie gotowa do obsługi JavaScript kod do wykonania "źródło
.on()
działa. Możesz (opcjonalnie) użyć go do tworzenia delegowanych programów obsługi, ale tak czy inaczej nie „zeskrobuje strony”, wiąże nasłuchiwanie z określonymi elementami w obiekcie jQuery, do którego go wywołujesz.Znalazłem najlepsze rozwiązanie tego problemu, używając ON z $ (dokument).
id zacznij od patrz poniżej:
wreszcie po 1 tygodniu nie muszę dodawać trygera onclick. Mam nadzieję, że pomoże to wielu ludziom
źródło
Twój kod może działać bez document.ready (), po prostu upewnij się, że skrypt znajduje się po znaku #clicker. Sprawdź to demo: http://jsbin.com/aPAsaZo/1/
Pomysł w gotowej koncepcji. Jeśli masz pewność, że skrypt jest najnowszą rzeczą na Twojej stronie lub znajduje się po elemencie, którego dotyczy problem, zadziała.
Uwaga: wjsbindemo zastąpić
http
zehttps
tam w kodzie, lub korzystać z tego wariantu Demoźródło
document.ready()
funkcji.Musisz opakować swój kod JavaScript w
$(document).ready(function(){});
Look this JSfiddle .Kod JS:
źródło
Spróbuj dodać
$(document).ready(function(){
na początku swojego skryptu, a następnie});
. Ponadto, czydiv
identyfikator ma w sobie poprawnie, tj. Jako identyfikator, a nie klasa, itp.?źródło
Upewnij się, że na Twoim przycisku nie ma nic (np. Element DIV lub przezroczysty obraz), co powstrzymuje go przed kliknięciem. Brzmi to głupio, ale czasami wydaje nam się, że jQuery nie działa i to wszystko się komplikuje, a problem dotyczy pozycjonowania elementów DOM.
źródło
Możesz użyć
$(function(){ // code });
które jest wykonywane, gdy dokument jest gotowy do wykonania kodu wewnątrz tego bloku.źródło
Tylko szybkie sprawdzenie, jeśli używasz silnika szablonów po stronie klienta, takiego jak kierownica, twój js załaduje się po dokumencie. Już, stąd nie będzie żadnego elementu do powiązania zdarzenia, dlatego użyj obsługi onclick lub użyj go na treści i sprawdź aktualny cel
źródło