我知道stackoverflow上的另一个问题,并且已经查看了它,但它没有回答/解决我发生错误的情况。< / em>
我试图制作两个脚本embed.js
(插件)&amp;加载文档时,more-content-arrow.js
(我的脚本)在页面上正常工作。何时以及如果我删除任何一个脚本,一个或另一个将工作,但不是两个脚本在一起。当页面首先完成加载时,它将正确加载more-content-arrow.js
,然后当滚动事件再次触发时,它将在控制台浏览器中发出此错误消息:
VM249 embed.js:2 Uncaught TypeError: ((fe.event.special[s.origType] || (intermediate value)).handle || s.handler).apply is not a function
at dispatch (VM249 embed.js:2)
at m.handle (VM249 embed.js:2)
我试图通过添加jQuery.noConflict();
来解决它,但这并不起作用,因为我认为它可能是两个脚本之间的冲突。我发现摆脱错误消息的唯一方法是删除两个脚本文件之一或删除$.getScript(...)
,但我不想这样做。我希望能够让两个脚本在页面中正常运行。
JS:
$(document).ready(function(){
//jQuery.noConflict();
$.getScript("more-content-arrow.js", function(){
alert("arrow script loaded and executed.");
});
});
我在这里重新创建了一个带有未捕获类型错误的jsfiddle:
答案 0 :(得分:3)
您的错误出现在more-content-arrow.js
文件中,您传递的是一个整数作为第三个参数而不是处理程序,这里是.on()的jquery文档
$(window).on('scroll', function () {
if (!footerIsVisible) {
$('.bounce').fadeIn(300);
}
}); // <--- removed integer here.
或者,您可以使用event.stopPropagation();
并在jquery.unevent.js
脚本之后重新排序ember.js
脚本。
$(window).on('scroll', function (e) {
e.stopPropagation();
if (!footerIsVisible) {
$('.bounce').fadeIn(300);
}
}, 800);