javascript - 检查页面是否有 jQuery、jQuery.ui 和 jQuery.ui.css 的最佳方法是什么

标签 javascript jquery css jquery-ui

我有一些小部件应该嵌入到页面中并且应该可以拖动和调整大小。所以目前的做法是检查页面是否已经包含了jQuery、jQuery.ui和jQuery.ui样式。如果它有所有这些,就使用它们,否则——从我们的服务站点插入它们,并适本地标记。我对它的实现方式有些怀疑,尤其是在这里 ─ 首先它检查 jQuery。如果找到,它会尝试查找 jQuery.ui 样式。它通过名称的子字符串查找 2 个公共(public)类:

for(var i = 0, j = stylesheets.length; i<j; i++){
    var classes = stylesheets[i].rules;
    if(classes){ console.log({classes:classes});
        for (var x = 0, y = classes.length; x < y; x++) {
            if( classes[x].selectorText.indexOf('.ui-draggable')!=-1
                || classes[x].selectorText.indexOf('.ui-resizable')!=-1) {
                if(classes[x].cssText){
                    console.log('found: '+classes[x].cssText);
                    classCount++;
                    if(classCount==2){
                        break checkStyles;
                    }
                }
            }
        }
    }else console.log('no classes');
}

重点来了。我怎么能确定,如果它找到 2 个类,这意味着有所有必要的类来保证正确的小部件行为? 还是不管它们在页面上的存在,我都应该添加这些样式吗?但如果我这样做,那么它将使样式内容加倍。这看起来像是一个两难选择。那么是否有一个标准成熟的方法呢?


更新。重点不是检测 jQuery,而是如何最好地管理 jQuery.ui 样式。


最佳答案

jQuery 添加了一个全局“jQuery”对象(jQuery.ui 也是如此),因此您可以这样做:

if (typeof jQuery != "undefined") {
    if (typeof jQuery.ui != "undefined") {
        // You've got jQuery with UI
    } else {
        // You've only got jQuery, no UI
    }
} else {
    // No jQuery
}

关于javascript - 检查页面是否有 jQuery、jQuery.ui 和 jQuery.ui.css 的最佳方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33179408/

相关文章:

php - Symfony Ajax 进度条

javascript - 在 ArcGIS Web AppAbuilder 中将自定义库添加到微件

javascript - JQuery ScrollTop 添加/删除类到元素

css - Magento 菜单 : How can I get it to align left?

css - 按下回车按钮时在 div 中打断文本

javascript - 在运行被调用的函数之前触发一个函数运行

javascript - 访问我们传递给另一个对象的函数内的注入(inject)依赖项

javascript - Angular 注入(inject)解析到 Controller 日志记录未定义

html - 获得 2 div 1 below other while third fills the space

javascript - Express 生成器 - TypeError : app. set 不是一个函数