另一个--jquery对象没有方法 - 远程服务器上的错误而不是localhost

时间:2013-12-17 12:49:07

标签: jquery

我有一个管理页面,它有特定版本的jquery。我正在使用jquery加载另一个具有另一个特定版本的jquery的html页面。当第二页加载到div时,加载页面上的方法会出现错误'object has no method'。

我没有使用冲突,没有运气。当我查看检查器时,我看到错误来自父页面jquery版本。

你有什么想法吗?如何强制加载的页面使用自己的jquery?

--- 奇怪的是,在localhost上,我在远程服务器上没有错误,我收到此错误 ---

我知道这里有很多搜索结果。但没有解决方案可以帮助我。

2 个答案:

答案 0 :(得分:0)

在父页面上,你可以像这样使用jquery

var $jqParent = jQuery.noConflict();

$jqParent('selector').show();
您可以在子页面上

执行此操作

var $jqChild = jQuery.noConflict();

$jqChild ('selector').show();

请参阅:How do I implement JQuery.noConflict() ?

答案 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>