Javascript 在jquery脚本包含之前,jquery设置noConflict(或等效项)
问:在jQuery.js脚本包含之前,是否有“内置”或“简单”的方法来设置jQuery名称空间 我问这个问题的原因是因为我正在编写一个使用jQuery库的脚本,而该脚本将进入一个页面,该页面上已经有一个使用Javascript 在jquery脚本包含之前,jquery设置noConflict(或等效项),javascript,jquery,Javascript,Jquery,问:在jQuery.js脚本包含之前,是否有“内置”或“简单”的方法来设置jQuery名称空间 我问这个问题的原因是因为我正在编写一个使用jQuery库的脚本,而该脚本将进入一个页面,该页面上已经有一个使用$名称空间的库。通常我只能使用jQuery.noConflict(),但问题是,页面上有一些代码(我无法控制)与鼠标移动事件和其他东西挂钩,这些代码基本上会在整个时间内反复触发对第三方代码的调用,事实上,经常如此,在加载jQuery脚本和调用.noConflict()之间发生js错误。我无法控
$
名称空间的库。通常我只能使用jQuery.noConflict()
,但问题是,页面上有一些代码(我无法控制)与鼠标移动事件和其他东西挂钩,这些代码基本上会在整个时间内反复触发对第三方代码的调用,事实上,经常如此,在加载jQuery脚本和调用.noConflict()
之间发生js错误。我无法控制或更改该第三方脚本
因此,基本上我需要实例化jQuery对象,而不首先使用$
名称空间。现在。。我确信我可以对jquery.js进行反向工程,并使其不这样做,但在我走这条路之前,我想肯定有其他人遇到过这种情况。。但是在脚本包含之前,我找不到关于jQuery设置的官方文档;只有在之后。但我想肯定其他人也遇到过这样的问题,但我似乎找不到任何现有的问题来详细说明这一点(可能是因为我不擅长谷歌搜索)
谁能给我指出正确的方向吗
编辑:
说清楚,这基本上是我需要事情发生的顺序:
<script src='thirdpartyscript.js'></script>
<script type='text/javascript'>
jQuery.noConflict();
</script>
<script src='jquery.js'></script>
jQuery.noConflict();
显然,我不能在jQuery.js
脚本包含之前调用jQuery.noConflict()
,因为jQuery
对象/方法还不存在
但是我不能在脚本include之后调用它,因为在jquery.js
完全执行和noConflict
调用之间,thirdpartyscript
已经在抛出错误,因为jquery控制了$
,即使只有一微秒或w/e
所以。。我知道我可以编辑jquery.js
以避免使用$
名称空间,但我想知道在jquery.js
脚本包含之前,是否有一种内置的方法或其他简单的破解方法,因为a)我不想破解jquery.js
本身,因为我想一直指向code.jquery.com,而不是维护我自己的实例,b)这样做实际上需要弄清楚要更改什么(公平地说,我快速浏览了一下,看起来不太像。我的警告主要是针对“a”点)不起作用。如果稍后包含库,则对象“jQuery”不可用。你可以为此创建一个智能的“观察者”
<script src='thirdpartyscript.js'></script>
<script type='text/javascript'>
// Start an interval
var watch = setInterval(function() {
// Check if jQuery available
if(typeof(jQuery) != 'undefined') {
// Stop the interval
clearInterval(watch);
jQuery.noConflict();
}
}, 500);
</script>
<script src='jquery.js'></script>
//开始休息
var watch=setInterval(函数(){
//检查jQuery是否可用
if(typeof(jQuery)!=“未定义”){
//停止间歇
间隔时间(手表);
jQuery.noConflict();
}
}, 500);
你的意思是使用jQuery(document).ready(function($){})
而不是$(document)
。。etc?@null嗯,是的,我的总体目标是这样做,但最直接的问题是,当jQuery最初加载到实际的jQuery.js include中时,我的问题是如何解决jQuery与$
名称空间的冲突。看到我的编辑了吗?对不起,但是…这比在脚本包含后调用它更糟糕。这在jquery.js加载和noConflict调用之间留下了可能更大的时间间隔。我需要一些东西,使jquery.js完全不接触$
。看起来唯一的方法就是修改jquery.js本身,这也是我希望避免的