我正在使用一个调查设计程序,该程序在编写您自己的自定义功能/设计/等时提供(一些)自由。默认情况下,它使用原型(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/