Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/403.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ColumnChooser-free jqgrid在IE9上不起作用_Javascript_Jquery_Jqgrid_Free Jqgrid - Fatal编程技术网

Javascript ColumnChooser-free jqgrid在IE9上不起作用

Javascript ColumnChooser-free jqgrid在IE9上不起作用,javascript,jquery,jqgrid,free-jqgrid,Javascript,Jquery,Jqgrid,Free Jqgrid,将我的应用程序从jqGrid 4.6升级到免费的jqGrid 4.8后,columnChooser功能不起作用。只在IE9上。这里有演示:请在IE9模式下打开。 我认为问题在于jqGrid库中的apply_perm函数: apply_perm: function () { var perm = []; $("option", select).each(function () { if ($(this).is("[selected]")

将我的应用程序从jqGrid 4.6升级到免费的jqGrid 4.8后,columnChooser功能不起作用。只在IE9上。这里有演示:请在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时,它开始工作


[selected]和[is[:selected]之间有什么区别?

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

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

我修复了免费jqGrid代码中的行,另外还有关闭选择器$option[selected],select to$option,select.filter:selected


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

我遇到了与此筛选器相关的问题:已选择。 同样在演示中,如果在不关闭columnchooser的情况下删除一列并立即读取该列,该列将保持隐藏状态,因为$this.is:selected返回false,我无法理解原因,但在我测试它的chrome和edge中都会发生这种情况 如果我改为使用[selected],它会工作