gpt4 book ai didi

javascript - ColumnChooser free-jqgrid 不适用于 IE9

转载 作者:行者123 更新时间:2023-11-28 07:26:00 26 4
gpt4 key购买 nike

将我的应用程序从 jqGrid 4.6 升级到 free-jqgrid 4.8 后,columnChooser 功能无法正常工作。仅适用于 IE9。演示可在此处获取:http://jsfiddle.net/2tkkqbeq/15/ (请用IE9模式打开)。
我认为问题出在 jqGrid 库中的 apply_perm 函数 中:

   apply_perm: function () {
var perm = [];
$("option", select).each(function () {
if ($(this).is("[selected]")) {
$self.jqGrid("showCol", colModel[this.value].name);
} else {
$self.jqGrid("hideCol", colModel[this.value].name);
}
});
}

当我改变if ($(this).is("[selected]"))if ($(this).is(":selected"))它开始起作用了。

is("[selected]") 和有什么区别和is[":selected"]

最佳答案

感谢您的错误报告!我喜欢演示中的问题,它可以用来重现问题。

这是 jqGrid 4.7 中的错误(请参阅 the line 并将其与 jqGrid 4.6 的 the corresponding line 进行比较)。对所选选项的最佳测试是使用 .is(":selected")。 jQuery 的相应实现使用了不同版本的 Web 浏览器中实现的所有细节。选择器 .is("[selected]") 表示 selected 属性存在且具有某个值。通常,属性 selected 的值应为 "selected" (selected="selected")。我使用您的演示进行的测试表明,在 IE9 中,有 selected="" 值,并且测试 .is("[selected]") 返回错误值 true 而不是 .is(":selected") 提供正确的值 false

我将免费 jqGrid 代码中的行以及关闭选择器 $("option[selected]", select) 修复为 $("option", select).filter (“:选定”)

我已将修复程序发布到 github。因为您在演示中使用了 URL //rawgit.com/free-jqgrid/jqGrid/master/js/jquery.jqgrid.src.js,所以演示现在将使用修改后的代码。您现在可以在 IE9 中验证它是否正常工作。

关于javascript - ColumnChooser free-jqgrid 不适用于 IE9,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29646959/

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