加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 资源网站 > 资源 > 正文

为什么jQuery hide()/ show()破坏HTML中的HTML选择?

发布时间:2020-12-14 22:52:44 所属栏目:资源 来源:网络整理
导读:我正在编写jira-plugin,我需要在创建问题屏幕上编辑customfield.我使用jQuery来做到这一点.我在Chrome浏览器中使用html选项时使用的jQuery hide / show方法存在问题(在Firefox下运行良好).问题是我有3个不同的选择框,这些选项取决于前一个选项中选择的选项.

我正在编写jira-plugin,我需要在创建问题屏幕上编辑customfield.我使用jQuery来做到这一点.我在Chrome浏览器中使用html选项时使用的jQuery hide / show方法存在问题(在Firefox下运行良好).问题是我有3个不同的选择框,这些选项取决于前一个选项中选择的选项.我有一个功能,可以在前一个选择列表发生变化时准备下一个选择列表.

function prepareList(code,list) {
    list.children('option').each(function() {
        if(jQuery(this).text() == code || jQuery(this).text() == 'None') {
            jQuery(this).show();
        }
        else {
            jQuery(this).hide();
        }
    });
}

code是一个字符串,它是jQuery(‘#previous_select option:selected’).text()
它在许多情况下工作正常,但有时它会调整选项列表的大小.更糟糕的是,当下一个列表只有一个选项时,它不会显示.我可以看到它有显示:在html代码中内联,但在我点击选择三角形后,下拉列表就像2 px.
有趣的是,它在Firefox中完美运行.
IE 8甚至没有隐藏/显示,但它只是IE,所以我可以理解这一点.
Opera 12.16也没有隐藏/显示.
用于Windows的Safari 5.1.7也没有隐藏/显示.

问题是我应该使用哪些方法来实现我的目标?我也尝试了jQuery(this).css(‘display’,’none / inline’),它也不起作用.

编辑:
JSFiddle:jsfiddle.net/7KRLE/

最佳答案
$('#tier3').attr('disabled',true);

要禁用选项元素,必须将其disabled属性设置为字符串’disabled’,而不是布尔值true.

这给你:

$('#tier3').attr('disabled','disabled');

要启用它:

$('#tier3').attr('disabled','');

要么

$('#tier3').removeAttr('disabled');

IE和许多其他浏览器行为安全,不允许隐藏用户的选项.
关于IE的其他特殊处理,请阅读this article.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读