2013-05-13 89 views
0

我目前正在用jqGrid 4.4.5 fir进行第一次开发,而且我遇到了一个老版本的bug,在过去的版本中已经找到了一个修复程序,但是我现在正在用jQuery 1.9.1和jqueryui 1.9.2进行开发。jqGrid 4.4.5 Chrome中的网格列宽度渲染问题

原始问题和修复已发布here。我在这些插件的新版本中遇到了同样的麻烦,但那些熟悉jQuery 1.9的人会知道$.browser已被弃用。这使得以前的解决方案无法使用。任何人都可以帮助使用类似的解决方案,或者至少在新版插件中使用jqGrid 4.4.5等效代码?

备注:要添加之前未提及的内容,此问题可能会因为将浏览器缩放设置为90%或更小而重新创建。在100%缩放时,它可以正确呈现,但低于100%的任何内容都会出现问题。 (我需要它在90%变焦渲染)。

注意:我已经切换回4.3.1来测试旧的修补程序的应用程序,它的工作完美,所以它似乎是Chrome的老问题给我。

在此先感谢帮助和努力帮助我解决问题。

亲切的问候,

彼得。

回答

0

可以使相同的条件下在这里.browser $ jQuery的1.9使用下面的代码,并使用在link

贴,你可以使用下面的代码检查浏览器的条件相同的解决方案。

jQuery.uaMatch = function(ua) { 
    ua = ua.toLowerCase(); 

    var match = /(chrome)[ \/]([\w.]+)/.exec(ua) || 
     /(webkit)[ \/]([\w.]+)/.exec(ua) || 
     /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) || 
     /(msie) ([\w.]+)/.exec(ua) || 
     ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) || 
     []; 

    return { 
     browser: match[ 1 ] || "", 
     version: match[ 2 ] || "0" 
    }; 
}; 



matched = jQuery.uaMatch(navigator.userAgent); 
    //browser = {}; 
    //var cursorType = evt.target.style.cursor; 
     if(matched.browser.toLowerCase()=="mozilla") 
     { 
    } 
else 
{ 
} 

其他明智的,如果你指的jQuery 1.9和1.4使用的代码支持意味着美国可以参考jquery.migrate .js文件脚本文件在您的应用程序。

http://blog.jquery.com/2013/02/16/jquery-migrate-1-1-1-released/

https://github.com/jquery/jquery-migrate/

感谢,

湿婆

+0

湿婆嗨,我使用jQuery的迁移插件的时刻。 (虽然我教自己再次使用它,哈哈!) 问题是,jqGrid不再使用它。我确信它仍然会执行浏览器检查,但我需要知道它的源代码中的内容以及它如何通过更改来完成,以便我可以应用相同的修补程序。 Migrate将允许我使用$ .browser,但我不需要它。我需要的是相当于jqGrid当前正在使用的链接问题,以及它在插件源代码中的位置。 非常感谢,男人! – PieterLourens 2013-05-14 07:58:10

+0

重新查看代码后,它可能会解决我的问题,但没有一个更干净的方法来做到这一点?在jQuery 1.9中,$ .browser已被替换为$ .support,如果我理解正确的话。 $ .browser.webkit和$ .browser.safari是否有对应的$ .support值。 – PieterLourens 2013-05-14 09:41:26

+0

我不确定这个$ .browser.safari或$ .browser.webkit的值是否与$ .support相同。你能否请我参考更新后的代码,它可以在所有浏览器中工作。您可以使用该代码来检查浏览器状况。 – SivaRajini 2013-05-14 10:06:51