PHPstorm刚刚破坏了我的文件,所以我必须重做一切。由于某些原因,我无法完成这项工作 - 点击事件根本不会发生,也不会发生$(" body")。它确实适用于$(document).on(...)。 (脚本在head和script标签内)
$("#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 :(得分:3)
代码按照在页面上找到的顺序执行。所以这个:
$("#cover")
将 添加到页面后需要执行:
<div id="cover">
否则该选择器将找不到该元素,因为它尚不存在。
一种方法是将JavaScript代码移动到页面底部。 (或者至少在目标元素存在之后。)另一种方法是将它包装在jQuery函数中,该函数将它附加到文档的ready事件中:
$(function () {
// add your code here
// this will execute after the DOM is completely loaded
});
答案 1 :(得分:1)
尝试这样做。一旦你的DOM准备就绪,它就会执行。
$(function(){
$("#cover").on('click',function(e) {
$(e.target).removeClass("no");
$(e.target).addClass("yes");
});
});
答案 2 :(得分:0)
您可以尝试通过右键单击文件夹,导航到本地历史记录 - &gt;来恢复PHPStorm中的更改。显示历史记录 - &gt;右键单击文件/文件夹,然后选择还原更改。
如果不起作用,请执行以下操作:
$(document).ready(...)
console.log($("#cover"));
作为第一行,以查看jQuery对象长度是1还是0.如果1匹配并找到该元素,如果为0,则元素不会存在或找不到匹配。