gpt4 book ai didi

javascript - 使用 jquery/javascript 的奇怪 IE 问题

转载 作者:行者123 更新时间:2023-12-02 20:25:25 25 4
gpt4 key购买 nike

我正在使用以下代码:

ieLessThan8OptionDisable = function() {
if ($.browser.msie && parseFloat($.browser.version) < 8) {
$("select").find("[disabled]").addClass("disabledforie").removeAttr("disabled");
$("select").change(function(){
var selected = $(this).val();
var disabled = $(this).find("[value="+selected+"]").hasClass("disabledforie");
if (disabled) {
alert("This option is disabled.\nSelect will be set to the first option.");
$(this).find("option:first").attr("selected","selected");
}
});
}
}

基本上,此代码用于选择下拉框中的禁用选项。除了可用性问题之外,它工作得很好。

每当我单击应该在 IE 中禁用的选项时,都会弹出一个警报,然后选择框会重置到第一个位置。一切皆好。现在,当我单击选择框打开下拉菜单时,它就会关闭。基本上我必须点击它两次才能打开。

我已经在 IE6 和 IE7 中尝试过了。两者都有这个问题。

任何指针都会很棒!

谢谢

最佳答案

这听起来像是一个焦点问题。当您选择新选项时,选择框具有焦点,然后弹出一条警报,该警报将焦点从选择元素上夺走。当警报被调用时,IE 应该自动关闭选择框,但可惜他们可能没有测试这种边缘情况。因此,两次单击将执行以下操作:

  1. 将焦点返回到所选元素
  2. 在列表中选择一个项目

在调用警报之前添加对模糊的调用:

if (disabled) {
this.blur();// add in
alert("This option is disabled.\nSelect will be set to the first option.");
$(this).find("option:first").attr("selected","selected");
}

PS - 我还没有实际测试过这个,我现在没有可用的 IE

关于javascript - 使用 jquery/javascript 的奇怪 IE 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4922265/

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