我使用div构建了一个自定义下拉框,我想将click
事件绑定到已打开的类。这是一个基本的例子。 fiddle here
问题是,如果我在点击包装器div后单击测试div,则会触发两个点击事件。
我基本上只是尝试在第一次单击事件后将click事件绑定到正文。 对不起,连接器剥离了我的小提琴网址的最后一部分。
答案 0 :(得分:0)
如果您正在使用
$(document).ready(function(){
});
该功能需要像这样
$(document).on("click", "#someid", function (e) {
});
如果您想尝试
,这就是我将js更改为小提琴的内容 $(function(){
$("body").one("click", "#test", function(){
$(this).addClass("close");
alert("Close Class Added");
});
$("body").one("click", ".close", function(){
$(this).removeClass("close");
alert("Closed");
});
});
第二个.one类消除了对if语句的需要,因为你不需要检查是否已添加.close只有在设置了类时它才会触发
答案 1 :(得分:0)
在你的小提琴中试试这段代码:
$("body").on("click", "#test", function(e){
alert("click1");
e.stopPropagation();
$("#test").addClass("close");
});
$(document).on("click", function(e){
if($("#test").hasClass("close")){
alert("click2");
}
});
我认为应该做你想做的事。
答案 2 :(得分:0)
我设法解决了这个问题。我在包装器上有e.stopPropagation()而不是div里面。