javascript - if 语句依赖于 jQuery().jquery

标签 javascript jquery

根据运行的 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

}

这在 Firefox 中工作正常,但在 Chrome 和 IE 中,即使满足条件且 elseelse ,页面也会在 else block 中给出错误不需要。干杯。

最佳答案

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

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

或者甚至只是:

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

仅供引用,您可以查看添加任何给定 jQuery 功能的版本 here .


我的建议是检查一下上面是否有您想要的具体方法。但是,如果您觉得必须检查版本,那么您需要检查大于,而不是相等。正如您所知,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
}

关于javascript - if 语句依赖于 jQuery().jquery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12719608/

相关文章:

javascript - jquery 添加类错误

javascript - 同一页面上有多个 Google 图表

php - 如何使用 PHP 和 Ajax 将数组传递给 Javascript?

javascript - 无法使用 React Native 将图像上传到 wp/v2/media

javascript - Angular 访问范围属性

jquery - 将 CSS 动态加载到文档头部并在加载后等待

javascript - 从单独的页面访问主页元素 (PageSlide)

javascript - 如何设置仅在第一次加载页面时弹出?

jquery - CSS 或 JQuery 响应 'image fill div'

javascript - 使用 json 文件在 javascript 中显示幻灯片的问题