初始化js后,我创建了具有close class的新<div>
元素,并且on("click")
函数不起作用。
$(document).on('click', '.post-close', function () {
alert("hello");
});
但on('hover')
完美无缺。
$(document).on('hover', '.post-close', function () {
alert("hello");
});
但我需要点击它。
答案 0 :(得分:4)
这是因为您没有阻止浏览器的默认行为。将e
传递给您的处理程序,然后使用e.preventDefault()
$(document).on('click', '.post-close', function (e) {
e.preventDefault();
alert("hello");
});
此外,在创建新的<div>
答案 1 :(得分:1)
为什么不使用像
这样的东西$('.post-close').click(function(){
//do something
});
如果动态添加元素,请使用:
$(document).on('click', '.post-close', function(){
//do something
});
编辑:
像danWellman所说,你可以添加preventDefault,以确保没有其他代码被执行。否则使用上面的代码。
EDIT2:
将.live更改为.on
答案 2 :(得分:0)
这是一个旧帖子,但我有一个完全相同的问题(动态创建的元素,悬停工作,但点击不会)并找到解决方案。 我希望这篇文章可以帮助别人。
就我而言,我发现ui-selectable用于父元素,这阻止了click事件传播到文档。
所以我添加了一个按钮元素的选择器给ui-selectable&#39;取消&#39;选择和问题解决了。
如果您有类似的问题,请查看