我正在将一个jQuery脚本动态加载到随机页面中。有时他们支持jQuery,有时他们有其他的库,有时他们根本没有任何库。
我需要支持所有的情况,因此,我首先检查是否加载了jQuery。如果没有,我使用.noconflict动态地将jQuery加载到页面中(为了避免冲突,以防有其他库,daahhh),然后继续我的脚本。
如果它已经被加载,我需要知道页面是否已经触发了.noconflict函数。为什么?这很简单。假设一个随机页面同时具有Prototype和jQuery (确实会发生)。站长触发jQuery的.noconflict模式,避免与之冲突。在那之后,我触发我的脚本,并检查jq是否已经加载(是)。然后,我必须知道是否要使用$()或jQuery()方法,因为如果我继续使用$(),我可能会访问原型处理程序,而我不希望这样。
发布于 2012-09-03 14:56:32
.noConflict仅删除$对象,而不删除jQuery对象。(除非添加true作为第一个参数。
因此,您可以始终使用jQuery()
发布于 2012-09-03 14:58:06
正如其他人所说,您应该始终默认使用完整的jQuery对象,而不是别名。如果这是一个打字数量的问题,使用$,然后在文本编辑器中使用find-replace,然后再按下live。
...But如果你一定要以一种荒谬的方式来做这件事,很简单:
if ($ == jQuery) { alert("YAY"); }下面是我在JSFiddle上使用jQuery 1.8和单独加载的MooTools 1.4.5编写的一个示例:http://jsfiddle.net/fL9rk/2/
运行一次,然后卸载外部MooTools并重试。
别说我们没警告过你。
发布于 2012-09-03 15:00:38
您可以使用:
jQuery(function( $ ){
//Insert your javascript code here
});所有的jQuery代码都将放在这些大括号中,并且永远不会与其他原型冲突。
https://stackoverflow.com/questions/12243203
复制相似问题