javascript - JQuery 事件在 .addClass 之后不起作用

标签 javascript jquery

为什么 div#1 不改变文本。我做错了什么?

<div id="1" class="a" style="width: 300px;height: 300px; background-color: #003366"></div>
<div id="2" class="b" style="width: 300px;height: 300px; background-color: #003366"></div>

<script>
$(document).ready(function(){
    $(".b").click(function(){
       $(this).text("hello");
    });

    $(".a").mouseover(function(){
      $(this).addClass("b");
    });
});
</script>

最佳答案

事件处理程序被添加到当时与选择器匹配的元素中,稍后更改选择器不会神奇地使事件处理程序工作。

您可以为此使用委托(delegate)事件处理程序

$(document).ready(function(){
    $(document).on("click", ".b", function(){
       $(this).text("hello");
    });

    $(".a").mouseover(function(){
      $(this).addClass("b");
    });
});

但是你为什么要这样做,这似乎是一种奇怪的模式,仅在悬停同一元素后才激活单击处理程序,因为除非鼠标悬停在它上面,否则你不可能单击它?

关于javascript - JQuery 事件在 .addClass 之后不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22305947/

相关文章:

jquery - 将点击事件绑定(bind)到 jQuery Datatable on() 中的 tr 元素不起作用

javascript - CSS 背景色有效性

javascript - 在更正拼写错误并重新提交后验证 javascript 中的用户输入不会脱离 else 构造

javascript - 为什么不需要在构造函数中指定变量?

javascript - 使用唯一的 IDS 将相同的按钮 UI 图标添加到不同的按钮

javascript - jQuery Serialize 与 Bootstrap 单选按钮组间歇性工作

javascript - 在幻灯片上插入覆盖的 Div

javascript - 存储元素与其 id,哪个最有效

javascript - "AJAX"jQuery 上传问题

javascript - 如何从 xhtml 页面中获取 jquery 附加和前置数据