0

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

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

我基本上只是想在第一次点击事件之后将点击事件绑定到正文。对不起,链接器剥夺了我小提琴网址的最后一部分。

4

3 回答 3

0

我设法解决了这个问题。我在包装器上有 e.stopPropagation() 而不是里面的 div 。

于 2013-11-06T15:53:17.677 回答
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 是否已添加,它只会在设置类时触发

于 2013-10-29T15:31:47.947 回答
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");
    }
});

我认为这应该做你想要的。

于 2013-10-29T15:47:20.390 回答