javascript - 尽管调用了 NoConflict,jQuery Script src 声明仍抛出 JavaScript 错误

标签 javascript jquery prototypejs conflict

我正在使用一个调查设计程序,该程序在编写您自己的自定义功能/设计/等时提供(一些)自由。默认情况下,它使用原型(prototype)。我也想使用 jQuery。在 header 中,我声明了 jQuery 并调用了 noConflict,如下所示:

<script src="SurveyResource/jquery.js"> </script>
<script>
jQuery.noConflict();
</script>

当我尝试加载页面时,出现典型的“对象不支持此属性或方法”错误。我还尝试删除 noConflict 脚本,但仅声明时仍然会出现错误。快速调试后发现错误出现在prototype.js中,在这个函数处:

fire: function(element, eventName, memo) {
  element = $(element);
  if (element == document && document.createEvent && !element.dispatchEvent)
    element = document.documentElement;

  var event;
  if (document.createEvent) {
    event = document.createEvent("HTMLEvents");
    event.initEvent("dataavailable", true, true);
  } else {
    event = document.createEventObject();
    event.eventType = "ondataavailable";
  }

  event.eventName = eventName;
  event.memo = memo || { };

  if (document.createEvent) {
    element.dispatchEvent(event);
  } else {
    element.fireEvent(event.eventType, event);
  }

  return Event.extend(event);
}

具体来说,在这一行:element.fireEvent(event.eventType, event);。另外,我正在使用 IE8。对于那个很抱歉。谁能帮我让这两个 child 一起玩得开心?相关问题似乎没有任何答案。

编辑:这是我认为是我的问题的再现的 fiddle : http://jsfiddle.net/vbzju/7/

Prototype 被选为框架(调查软件就是这么用的),但后来我添加了 jQuery 作为头脚本,调用了 noConflict,然后尝试了一个简单的 jQuery 函数。我认为抛出的错误与我在我的机器上遇到的错误相同。

最佳答案

在您的 fiddle 中,jquery 被加载了两次。这是一个使用闭包的示例,这样您就可以对 jquery 和原型(prototype)使用 $ 符号。 http://jsfiddle.net/vbzju/14/此外,您应该先加载 jquery,然后再加载原型(prototype)。

关于javascript - 尽管调用了 NoConflict,jQuery Script src 声明仍抛出 JavaScript 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7476231/

相关文章:

javascript - 识别 "Aria-Selected"状态 - Jquery

javascript - Messi jQuery 确认框重定向

javascript - 当jquery处于无冲突模式时,如何解决TypeError iterator is not a function withprototypejs

javascript - 是否可以从 jquery 监听自定义原型(prototype)事件?

javascript - 我不明白这部分的原型(prototype) javascript

javascript - 如何指定 Owl carousel 2 中显示的元素数量?

javascript - 在 React 组件中等待异步函数并显示 Spinner

javascript - 如何防止手机在 Canvas 上多次点击时缩放?

jquery - 切换类无法正常工作

javascript - 使用 meteor.js 选择时突出显示输入框