-1

我正在尝试编辑 UI 代码,但随后被阻止。无论我做什么,我都无法将任何类型的事件固定到 jquery 对象上。

有许多带有类名链接的对象。以下代码对 jquery 对象没有任何影响。

$(".link").on("click",function(x){alert("clicked")})

发生这种情况的可能原因是什么。我测试了代码,发现 $(".link") 正在返回一个有效对象。

4

3 回答 3

3

一种可能且很可能的原因是代码在元素实际存在之前执行。将代码包装在$(document).ready()调用中:

$(document).ready(function() {
    $(".link").on("click",function(x){alert("clicked")});
});

推荐阅读:

于 2013-02-07T13:17:06.740 回答
1

似乎与.on(). 在动态添加元素的情况下,您应该.on()在父级(文档准备就绪时存在)上应用,并将范围作为.on()方法的第二个参数。

在您的情况下,它应该是:

$(document).ready(function() {
    $("body").on("click", "div.link", function(x){alert("clicked")})
});

这也适用于动态创建的此类元素。现场测试用例

于 2013-02-07T13:24:27.737 回答
0

通常附加事件.on("click", function(d, i){ console.log('clicked'); })应该可以工作......但如果那没有做这项工作,边缘必须有一个css部分,其中 pointer-events将设置为无......并且删除它应该可以解决问题

于 2013-02-07T13:16:33.947 回答