2

根据运行的 jquery 版本,运行函数的最佳方式是什么?现在我有:

var jqVersion = jQuery().jquery;

if (jqVersion == '1.4.2') { 

    //jQuery 1.4.2 specific script here.

} else {

   //jQuery that works on rest of the site here

}

else这在 Firefox 中运行良好,但在 Chrome 和 IE 中,即使满足条件且else不需要,页面也会为块中的代码提供错误。干杯。

4

2 回答 2

3

如果您的错误与.prop()jQuery 版本 1.6 中添加的相关联,那么您应该检查该方法是否可用并采取相应措施。

if (jQuery().prop) {
    // .prop() methods exists
}

甚至只是:

if (jQuery.fn.prop) {
    // .prop() methods exists
}

仅供参考,您可以在此处查看任何给定 jQuery 功能添加的版本。


我的建议是检查您想要的特定方法是否如上所述。但是,如果你觉得你必须检查版本,那么你需要检查大于,而不是相等。如您所知,jQuery().jQuery将版本包含为字符串。如果要检查大于某个数字的版本,则需要将该字符串解析为数字并与它们进行比较。这是一个功能:

jQuery.getVersionObject = function() {
    var versionStr = jQuery().jQuery;
    var matches = versionStr.match(/(\d+)\.(\d+)\.(\d+)/);
    var num = (matches[1] * 1000 * 1000) + (matches[2] * 1000) + (matches[3]);
    return ({major: matches[1], minor: matches[2], rev: matches[3]; num: num})
}

jQuery.checkMinVersion(major, minor, rev) {
    minor = minor || 0;
    rev = rev || 0;
    var num = (major * 1000 * 1000) + (minor * 1000) + rev;
    var version = jQuery.getVersionObject();
    return(version.num >= num);
}

示例用法:

if (jQuery.checkMinVersion(1, 6, 0)) {
    // jQuery version is 1.6.0 or higher
}
于 2012-10-04T02:50:08.477 回答
1

不写代码取决于jQuery版本。

大部分代码应该是一样的,对于一些特殊的部分,测试属性是否存在,而不是使用jQuery的版本。

例子:

if ('prop' in $jQueryObject) {
  // do something
} else {
  // do in other way
}

要在同一页面中使用不同版本的 jQuery,请查看我对这个问题的回答。

脚本引用导致冲突

于 2012-10-04T02:50:23.320 回答