我有一些奇怪的问题。
我正在尝试向DOM元素添加一些事件(所有现有的,一些最初隐藏的:
$self.on("focus", function () {
$self.next().css("display", "inline-block");
});
$self.on("blur", function () {
$(this).next().hide();
});
$self.parent().find(".icon-ok").on("click", function() {
console.log("icon.ok")
});
您可以在此处查看DOM的相关部分(self是span用户名):
稍后,该元素最终因为可见而我可以点击它。但是,永远不会调用事件处理程序。如果我删除模糊事件,则比点击事件有效。但是,我需要两者。
这里发生了什么? 我该如何解决?
答案 0 :(得分:1)
Looks like模糊取消了点击(由于事件顺序),但使用mousedown而不是模糊可能会帮助您同时获得这两种效果。
更新:根据评论添加了代码
$self.parent().find(".icon-ok").on("mousedown", function() {
console.log("icon.ok")
});
答案 1 :(得分:0)
您的问题可能是典型的委派问题,当绑定事件时,元素在DOM中不可用。
委派活动,看看是否能解决您的问题。
$self.on("click", ".icon-ok", function() {
console.log("icon.ok")
});
用户$self
,如果该元素可见,或者您可以找到的任何最接近的祖先,这些祖先始终存在于DOM中。