jQuery绑定点击立即点击

jam*_*son 3 javascript jquery

我有一个下拉菜单,单击该图标应该将"打开"类添加到其父级,然后单击任何位置的菜单应关闭它.但是单击图标时,bind中的函数会触发.效果是它添加了Open类,然后立即将其删除.

这可能是一个简单的问题,但我似乎无法解决为什么"点击"事件会立即触发!?

这个问题可能类似,但仍然无法解决:jQuery绑定事件触发事件

$(function () {

    $(".ui-dropdown-action").bind("click", function () {
        $(this).parent()
            .addClass("Open")
            .bind("click", function () {
                $(this).removeClass("Open");
            });
    });

});
Run Code Online (Sandbox Code Playgroud)

Mar*_*ark 8

我认为你可能会遇到点击事件冒泡DOM树的问题.这也是为什么还会在父级上触发点击的原因.

如果您将事件对象作为第一个绑定的参数传递并调用event.stopPropagation()如下

$(function () {

  $(".ui-dropdown-action").bind("click", function (event) {
    event.stopPropagation();
    $(this).parent()
        .addClass("Open")
        .bind("click", function () {
            $(this).removeClass("Open");
        });
  });

});
Run Code Online (Sandbox Code Playgroud)

应该解决你的问题.