检查页面是否有jQuery,jQuery.ui&的最佳方法是什么? jQuery.ui.css

时间:2015-10-16 20:55:29

标签: javascript jquery css jquery-ui

我有一些应嵌入页面的小部件,应该是可拖动的&调整大小。因此,目前的方法是检查页面是否已包含jQuery,jQuery.ui和jQuery.ui样式。如果它具有所有这些,只需使用它们,否则 - 从我们的服务站点插入它们,并适当地标记它们。我对它的实施方式有一些疑问,特别是在这里── 首先它检查jQuery。如果找到,它会尝试查找jQuery.ui样式。它通过他们的名字寻找2个共同的课程。子串:

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个类意味着有所有必要的类来保证适当的小部件行为? 或者我应该添加这些样式无论他们在页面上的存在?但如果我这样做,那么它将使样式内容加倍。这看起来像是一个两难的局面。那么,如果有标准的成熟方法吗?

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

1 个答案:

答案 0 :(得分:3)

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
}