【问题标题】:Prototype.js conflicting with jquery.js : How to solve this?Prototype.js 与 jquery.js 冲突:如何解决这个问题?
【发布时间】:2013-05-23 11:23:18
【问题描述】:

我有parent.jsp,其中包含prototype.jsparent.jsp 包含一个链接,它从child.jsp 加载内容,但child.jsp 包含jquery.js。现在原型与 jquery 冲突,我在 Internet Explorer 中遇到很多错误,在 mozilla firefox 中遇到一个错误。

大多数 Internet Explorer 问题都与 $ 符号和 document.body.appendChild() 有关。

Mozilla firefox 出现此错误:

typeerror value does not implement interface node 在这行原型中:

var query= document.evaluate(expression, $(parentElement) || document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);

谁能建议如何解决这个问题?我用谷歌搜索了很多,给定了 jquery 的noConflict,仍然没有任何工作。

【问题讨论】:

    标签: javascript jquery prototypejs conflict


    【解决方案1】:

    好的,我发现了问题,似乎所有这些问题都是因为 jquery.js 被加载了两次,一次从 child.jsp 加载,另一次从另一个页面加载。小屋!!!

    这太可怕了,我花了很长时间才发现。

    【讨论】:

      【解决方案2】:

      参考 jQuery noConflict 文档:http://api.jquery.com/jQuery.noConflict/#example-1

      在您的子页面中使用此示例:

      jQuery.noConflict();
      (function($) {
        $(function() {
         // put your jquery code in here
        });
      })(jQuery);
      // other code using $ as an alias to the other library
      

      【讨论】:

      • 看我的问题,我用过noConflict,没有太大帮助。
      • 我认为如果您使用自执行功能,则不需要noConflict() 调用。
      【解决方案3】:

      如果您的冲突问题即使在放置 noConflict 脚本后仍未解决,请将您的 jquery 代码中的所有“$”符号替换为“jQuery”。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-12-04
        • 1970-01-01
        • 2012-02-18
        • 2015-09-24
        • 2021-03-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多