2015-11-16 3 views
2

PHPstorm испортил мои файлы только сейчас, поэтому мне приходится все переделывать. И по какой-то причине я не могу получить это рабочее событие click, просто не происходит вообще, ни с $ («body»). Он работает с $ (document) .on (...). (сценарий внутри тегов головы и скриптов).click не работает должным образом на jQuery

$("#cover").on('click',function(e) { 
    $(e.target).removeClass("no"); 
    $(e.target).addClass("yes"); 
}); 


<body> 
<div id="button"></div> 
<div id="cover"> 
    <div class="rows" id="row1"></div> 
    <div class="rows" id="row2"></div> 
    <div class="rows" id="row3"></div> 
    <div class="rows" id="row4"></div> 
    <div class="rows" id="row5"></div> 
    <div class="rows" id="row6"></div> 
</div> 
</body> 
+0

'$ ("тело) .click (функция() { предупреждение (" тревога"); }); 'сейчас не работает WTF случилось – WhilseySoon

+0

сделал я проверить хромированную Dev консоль на наличие ошибок.? ? –

ответ

3

Код не выполнен в том порядке, в котором он находится на странице. Так что это:

$("#cover") 

должна быть выполнена после этого добавляется к странице:

<div id="cover"> 

В противном случае этот элемент не будет найден этот селектор, потому что еще не существует ,


Один из подходов заключается в перемещении кода JavaScript в нижней части страницы. (. Или, по крайней мере, после того, как целевой элемент существует) Другое, чтобы обернуть его в функции JQuery, которая будет прикрепить его к готовому событию документа:

$(function() { 
    // add your code here 
    // this will execute after the DOM is completely loaded 
}); 
+0

Спасибо, я пропустил этот момент. – WhilseySoon

1

Попробуйте сделать это. Он будет выполнен, как только ваш DOM будет готов.

$(function(){ 
    $("#cover").on('click',function(e) { 
    $(e.target).removeClass("no"); 
    $(e.target).addClass("yes"); 
    }); 
}); 
+0

Jeez, спасибо. Хотя я не понимаю, почему это должно быть написано так, и почему это не было необходимым в прошлый раз, я это сделал. – WhilseySoon

+0

Это работает, как только документ готов ... это означает, что каждый элемент на вашем страница загружена – Nakib

0

Вы могли бы попробуйте отменить изменения в PhpStorm правой кнопки мыши папка, перейдите к Local History -> Показать историю -> щелкните правой кнопкой мыши файл (ы)/папку (ы) и выберите «Отменить изменения».

Если это не работает, выполните следующие действия:

  1. Переместите JavaScript в нижней части страницы
  2. Оберните щелчок $(document).ready(...)
  3. Для целей отладки делать console.log($("#cover")); в качестве первой линии до связывая событие click, чтобы увидеть, равна ли длина объекта jQuery 1 или 0. Если 1 элемент сопоставлен и найден, если 0, то элемент не существует или не найден.
Смежные вопросы