Код:
<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>
Приведенный выше код не работает. Когда я нажимаю #clicker, он не предупреждает и не скрывается. Я проверил консоль, ошибок нет. Я также проверил, загружается ли JQuery, и действительно ли это так. Так что не уверен, в чем проблема. Я также сделал функцию готовности документа с предупреждением, и это сработало, поэтому я не уверен, что я делаю не так. Пожалуйста помоги. Спасибо!
javascript
jquery
onclick
click
onclicklistener
Старбакс
источник
источник
Ответы:
Вы должны добавить код javascript в
$(document).ready(function() {});
блок.т.е.
Как указано в документации jQuery : «Страницей нельзя безопасно управлять, пока документ не будет« готов ». JQuery определяет это состояние готовности за вас. Код, включенный в него,
$( document ).ready()
будет запускаться только после того, как объектная модель документа (DOM) страницы будет готова для JavaScript код для выполнения "источник
.on()
. Вы можете (необязательно) использовать его для создания делегированных обработчиков, но в любом случае он не «очищает страницу», а привязывает слушателя к конкретным элементам в объекте jQuery, для которого вы его вызываете.Я нашел лучшее решение этой проблемы, используя ON с $ (document).
для начала идентификатора см. ниже:
наконец, через 1 неделю мне не нужно добавлять триггер onclick. Я надеюсь это поможет многим людям
источник
Ваш код может работать без document.ready (), просто убедитесь, что ваш скрипт находится после #clicker. Ознакомьтесь с этой демонстрацией: http://jsbin.com/aPAsaZo/1/
Идея в готовом концепте. Если вы уверены, что ваш скрипт является последним на вашей странице или находится после затронутого элемента, он будет работать.
Примечание: вjsbindemo замените
http
наhttps
там в коде, или используйте этот вариант Demoисточник
document.ready()
функция.Вам нужно обернуть свой Javascript-код с помощью
$(document).ready(function(){});
Look this JSfiddle .Код JS:
источник
Попробуйте добавить
$(document).ready(function(){
в начало вашего скрипта, а затем});
. Кроме того,div
правильно ли указан идентификатор, т.е. как идентификатор, а не как класс и т. Д.?источник
Убедитесь, что на вашей кнопке (например, div или trasparent img) нет ничего, что удерживало бы ее от нажатия. Это звучит глупо, но иногда мы думаем, что jQuery не работает и все такое, и проблема заключается в позиционировании элементов DOM.
источник
Вы можете использовать
$(function(){ // code });
which выполняется, когда документ готов выполнить код внутри этого блока.источник
Просто быстрая проверка: если вы используете клиентский шаблонизатор, такой как handlebars, ваш js будет загружаться после document.ready, следовательно, не будет элемента для привязки события, поэтому либо используйте обработчик onclick, либо используйте его в теле и проверьте текущую цель
источник