我有一个下拉菜单,单击该图标应该将"打开"类添加到其父级,然后单击任何位置的菜单应关闭它.但是单击图标时,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)
我认为你可能会遇到点击事件冒泡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)
应该解决你的问题.
归档时间: |
|
查看次数: |
3348 次 |
最近记录: |