gpt4 book ai didi

javascript - 在点击事件中分配点击事件处理程序

转载 作者:可可西里 更新时间:2023-11-01 02:04:20 24 4
gpt4 key购买 nike

我在处理 jQuery 中的点击事件时遇到了一些奇怪的行为。

看看this Fiddle

$('#button').click(function() {
$(document).one('click', function() {
alert('clicked');
});
});

此代码将点击事件处理程序绑定(bind)到某个按钮。单击此链接时,应向文档添加一个事件处理程序,在下次单击该文档时提醒“已单击”。

但是当点击这个按钮时,“clicked”会立即得到提醒而无需再次点击。因此,显然将新处理程序绑定(bind)到文档的点击事件冒泡到文档并立即运行刚刚分配的 hndler。

这种行为似乎非常违反直觉。我的意图是在单击按钮时显示一个元素,并在单击该元素外部时再次隐藏它。

$('#button').click(function() {
// Show some element

$(document).one('click', function() {
// Hide the element again
});
});

但这会导致元素立即被隐藏。

有没有人能解决这个问题?

最佳答案

可以阻止事件向上传播 DOM。

$('#button').click(function(e) {
e.stopPropagation();
$(document).one('click', function(e) {
alert('clicked');
});
});

JS fiddle : http://jsfiddle.net/7ymJX/6/

关于javascript - 在点击事件中分配点击事件处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18736271/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com