gpt4 book ai didi

jquery - IE 中 .change 函数的问题

转载 作者:行者123 更新时间:2023-12-01 08:24:32 26 4
gpt4 key购买 nike

我下面有一个 jquery 脚本,用于根据选项交换选择框,它在 Firefox 中工作正常,但在 IE 中没有执行任何操作,但 IE 也没有显示任何错误,我真的希望有人能指出我正确的方向。任何帮助将不胜感激:

$(".initDealers").change(function () {   

if ($('.initDealers option:selected').val() == "All" ) {

$('.allDealers').show();

$('.initDealers').hide();

} else {

$('.initDealers').show();

}
});

最佳答案

在您将焦点从该字段移开之前,IE 无法识别选择框已发生更改。

这是由于 IE 使用 Windows 选择框控件的方式造成的;在这方面它就像一个插件一样有效地工作。您可能还会注意到 IE 中的选择框在分层时的怪癖;选择框有一个总是显示在顶部的习惯,即使你有其他元素覆盖它们。这也是同样的原因造成的。

快速解决方案是捕获 click 事件而不是 change 事件。当用户进行更改时,该功能就会生效,而无需等待他们将焦点从字段上移开。

但是即使如此,您也会遇到问题,因为 click 事件不会获取使用键盘所做的更改,因此您可以使用 Tab 键导航到该字段并进行更改,然后click 事件永远不会被触发。

因此,您可能需要捕获 clickchange 事件。当然,最终你会遇到可能多次捕获相同更改的问题。这并不理想,您需要为其编写代码,但这是捕获用户更改字段的所有可能方式的唯一方法。

它仍然不完美,因为如果用户使用键盘导航和更改字段,他们可以在选择列表中上下移动到他们想要的内容,但在移动之前不会触发任何事件来自外地。这是不可避免的。

关于jquery - IE 中 .change 函数的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4931755/

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