gpt4 book ai didi

javascript - 单击时停止元素消失

转载 作者:行者123 更新时间:2023-11-30 12:58:31 25 4
gpt4 key购买 nike

我正在编写一个简单的 jQuery 插件,它会在文本框获得焦点时动态地将一个 div 放置在该文本框下方。我已经能够在所有浏览器中获得正确的位置。

我还必须在文本框的 focusblur 事件上附加两个事件处理程序。它工作正常,但问题是即使我们单击它,放置在文本框下方的 div 也会关闭。现在它为什么会这样发生是有道理的,这是因为文本框失去了焦点,但有什么办法可以阻止它发生吗?

我尝试将其附加到模糊事件处理程序 -

if($(mainElem).is(":focus")) return;

其中 mainElem 是显示在文本框下方的 div。

这是一个jsFiddle to illustrate问题。

最佳答案

如果您想在显示的 div 中放置“可点击”元素,您将无法使用 blur 事件。解决此问题的一种方法是将您的事件监听器绑定(bind)到更全局的元素,例如 document,然后过滤掉目标。

这是一个代码示例:

$(document).on('click', function (e) {
var targetEl = e.target,
parent = $(e.target).parents()[0];
if (relElem[0] === targetEl || self[0] === targetEl || self[0] === parent) {
$(mainElem).show();
} else {
$(mainElem).hide();
}
});

这是对您的 fiddle 的更新:http://jsfiddle.net/9YHKW/6/

关于javascript - 单击时停止元素消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18197305/

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