Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/421.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在jquery脚本包含之前,jquery设置noConflict(或等效项)_Javascript_Jquery - Fatal编程技术网

Javascript 在jquery脚本包含之前,jquery设置noConflict(或等效项)

Javascript 在jquery脚本包含之前,jquery设置noConflict(或等效项),javascript,jquery,Javascript,Jquery,问:在jQuery.js脚本包含之前,是否有“内置”或“简单”的方法来设置jQuery名称空间 我问这个问题的原因是因为我正在编写一个使用jQuery库的脚本,而该脚本将进入一个页面,该页面上已经有一个使用$名称空间的库。通常我只能使用jQuery.noConflict(),但问题是,页面上有一些代码(我无法控制)与鼠标移动事件和其他东西挂钩,这些代码基本上会在整个时间内反复触发对第三方代码的调用,事实上,经常如此,在加载jQuery脚本和调用.noConflict()之间发生js错误。我无法控

问:在jQuery.js脚本包含之前,是否有“内置”或“简单”的方法来设置jQuery名称空间

我问这个问题的原因是因为我正在编写一个使用jQuery库的脚本,而该脚本将进入一个页面,该页面上已经有一个使用
$
名称空间的库。通常我只能使用
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本身,这也是我希望避免的