我有一个管理页面,它有特定版本的jquery。我正在使用jquery加载另一个具有另一个特定版本的jquery的html页面。当第二页加载到div时,加载页面上的方法会出现错误'object has no method'。
我没有使用冲突,没有运气。当我查看检查器时,我看到错误来自父页面jquery版本。
你有什么想法吗?如何强制加载的页面使用自己的jquery?
--- 奇怪的是,在localhost上,我在远程服务器上没有错误,我收到此错误 ---
我知道这里有很多搜索结果。但没有解决方案可以帮助我。
答案 0 :(得分:0)
在父页面上,你可以像这样使用jquery
var $jqParent = jQuery.noConflict();
$jqParent('selector').show();
您可以在子页面上执行此操作
var $jqChild = jQuery.noConflict();
$jqChild ('selector').show();
答案 1 :(得分:0)
有一种模式可以解决您的问题。尝试将代码包装在子页面中,如下所示:
(function($){
// All your code.
})(jQuery);
使用此方法,您网页上的代码会保存在 单独的范围 中。当您加载另一个具有其他版本jQuery的页面时,它只会用另一个版本覆盖 窗口 对象属性($
,jQuery
)。您当前的版本仍然有效。
如果您的页面有多个脚本部分,请尝试使用jQuery包装所有部分。像这样:
<script>
(function($){
// All your code for first script section
})(jQuery);
</script>
<script>
(function($){
// All your code for second script section
})(jQuery);
</script>
如果您无法编辑子页面,可以在加载的页面(父页面)中执行此操作:
<script></script>//script to load another jquery version
<script>
var currentJQuery = $.noConflict(); //restore $ to previous version and return the current version as currentJQuery variable.
</script>
包装所有其他脚本:
<script>
(function($){
// All your code for first script section
})(currentJQuery);
</script>
<script>
(function($){
// All your code for second script section
})(currentJQuery);
</script>