.click在jquery上无法正常工作

时间:2015-11-16 21:25:15

标签: javascript jquery

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>

3 个答案:

答案 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;右键单击文件/文件夹,然后选择还原更改。

如果不起作用,请执行以下操作:

  1. 将您的javascript移至页面底部
  2. 使用$(document).ready(...)
  3. 换行点击
  4. 出于调试目的,在绑定click事件之前将console.log($("#cover"));作为第一行,以查看jQuery对象长度是1还是0.如果1匹配并找到该元素,如果为0,则元素不会存在或找不到匹配。