我试图动态设置一个类后绑定一个单击事件

时间:2013-10-29 15:27:16

标签: jquery

我使用div构建了一个自定义下拉框,我想将click事件绑定到已打开的类。这是一个基本的例子。 fiddle here

问题是,如果我在点击包装器div后单击测试div,则会触发两个点击事件。

我基本上只是尝试在第一次单击事件后将click事件绑定到正文。 对不起,连接器剥离了我的小提琴网址的最后一部分。

3 个答案:

答案 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里面。