gpt4 book ai didi

javascript - 是否有 JavaScript "select box reveal"事件或类似事件? (使用 jQuery)

转载 作者:数据小太阳 更新时间:2023-10-29 05:27:07 24 4
gpt4 key购买 nike

我有一个 html 选择:

<select>
<option>Choose one</option>
</select>

使用 jQuery,当显示选择选项列表时,是否有我可以捕获的事件? (我需要这个的原因是因为我想将列表的填充推迟到列表需要显示给用户的那一刻)。

mousedown 在他们点击它时起作用,但如果他们选择它并按 enter 则不会做任何事情。

focus 也适用于单击,几乎适用于跳转到它,但它会在跳转到它时立即触发,而不是等到他们按 enter 键显示选项列表。 (这是一个问题,因为如果他们选择它然后在不按 enter 的情况下选择它,我不希望事件触发)。

我什至想到了这个可恶的东西:

var select_reveal = function(ev) { ... }
$('select').on('mousedown', select_reveal).on('keydown', function(ev) {
// character code 9 is tab
if (ev.which !== 9) select_reveal.bind(this)(ev);
});

这实际上seems to work .它甚至适用于他们键入字母的情况(它填充列表然后跳转到以该字母开头的第一个选项)。但正如我所说,这有点令人厌恶。仅将“制表符”检查为异常也有点老套——肯定还有其他异常不会导致选择被显示。

是否有涵盖此用例的简单事件(或至少涵盖它的不那么令人厌恶的事件)?

(注意:我知道有其他方法可以像这样构建系统——例如,通过在选项发生变化时提前填充而不是在选择显示时填充;但我不寻找替代方法建议,只是想知道是否有明确提出的问题的解决方案)。

最佳答案

我不确定你打算支持哪些浏览器,但在你走得太远之前请注意,如果你更改选择列表的内容(例如添加/更改/删除选项)IE 将实际吞噬将打开列表并为用户留下一个关闭的选择列表的(鼠标单击或焦点)事件。详情请看这里:http://webbugtrack.blogspot.com/2009/02/bug-487-onclickonfocus-bugs-on-select.html

我想如果你真的觉得延迟加载会有好处......我会在初始加载时隐藏/禁用选择列表,并在选项呈现后触发异步加载......重新- 准备就绪时启用/显示选择。

关于javascript - 是否有 JavaScript "select box reveal"事件或类似事件? (使用 jQuery),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9672367/

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