我正在将jQuery脚本动态加载到随机页面中。 有时他们支持jQuery,有时他们有其他库,有时他们根本没有任何库..
我需要支持所有情况,因此,首先我检查jQuery是否已加载。 不是这样,我使用.noconflict动态地将jQuery加载到页面中(以避免在有其他库的情况下发生冲突,daahhh)然后继续我的脚本。
已加载的情况,我需要知道该页面是否已触发.noconflict功能。 为什么?这很简单。 让我们说一个随机页面同时包含Prototype和jQuery(碰巧,是的)。 网站管理员触发jQuery的.noconflict模式,以避免与它发生冲突。 之后,我触发我的脚本,并检查是否已加载jq(是)。 然后,我必须知道使用$()或jQuery()方法的天气,因为如果我继续使用$(),我可能会访问Prototype处理程序, 我不希望这样。
答案 0 :(得分:3)
.noConflict
仅删除$
对象,而不删除jQuery
对象。 (除非您添加true
作为第一个参数。
因此,您始终可以使用jQuery()
答案 1 :(得分:1)
正如其他人所说,你应该总是默认使用完整的jQuery对象而不是别名。如果这是一个打字数量问题,请在推送到实时之前在文本编辑器中使用$然后使用find-replace。
...但是如果你绝对,那么肯定是这种荒谬的方式,这很简单:
if ($ == jQuery) { alert("YAY"); }
这是我使用jQuery 1.8和单独加载的MooTools 1.4.5在JSFiddle上编写的一个例子:http://jsfiddle.net/fL9rk/2/
运行一次,然后卸载外部MooTools并重试。
不要说我们没有警告你。
答案 2 :(得分:1)
你可以使用:
jQuery(function( $ ){
//Insert your javascript code here
});
并且所有jQuery代码都将在这些大括号中,并且永远不会与其他原型冲突。