1

初始化 js 后,我创建<div>了具有关闭类的新元素,并且on("click")功能不起作用。

$(document).on('click', '.post-close', function () {
        alert("hello");
});

on('hover')工作完美。

$(document).on('hover', '.post-close', function () {
        alert("hello");
});

但我需要让它在点击时工作。

4

3 回答 3

4

这是因为您没有阻止浏览器的默认行为。传递e给您的处理程序,然后使用e.preventDefault()

$(document).on('click', '.post-close', function (e) {
    e.preventDefault();
    alert("hello");
});

编辑

此外,在创建新的之前绑定处理程序<div>

于 2012-10-18T13:36:05.437 回答
1

为什么不使用类似的东西

$('.post-close').click(function(){
   //do something
});

如果元素是动态添加的,请使用:

$(document).on('click', '.post-close', function(){
   //do something
});

编辑:
就像 danWellman 说的,如果你想确保没有其他代码被执行,你可以添加 preventDefault 。否则使用上面的代码。

edit2:
将 .live 更改为 .on

于 2012-10-18T13:36:58.620 回答
0

这是一篇旧帖子,但我遇到了完全相同的问题(动态创建的元素,悬停有效,但点击无效)并找到了解决方案。我希望这篇文章对某人有所帮助。

就我而言,我发现 ui-selectable 用于父元素,这阻止了单击事件传播到文档。

所以我在 ui-selectable 的“取消”选项中添加了一个按钮元素的选择器,问题就解决了。

如果您有类似的问题,请检查此

  • 尝试为父元素转库
  • 您没有在父元素中使用 stopPropagation() 吗?
于 2016-07-31T14:49:47.777 回答