Javascript 如何解决此错误类型';未捕获的TypeError:(…)不是函数';?

Javascript 如何解决此错误类型';未捕获的TypeError:(…)不是函数';?,javascript,jquery,error-handling,typeerror,getscript,Javascript,Jquery,Error Handling,Typeerror,Getscript,我在stackoverflow上注意到了另一个类似这样的问题,并且已经查看了它,但它并没有回答/解决我所处的错误发生的情况 我正在尝试使这两个脚本,embed.js(插件)和more content arrow.js(我的脚本)在加载文档时在页面上正常工作。当我删除其中一个脚本时,其中一个脚本可以工作,但不能同时删除两个脚本。当页面首先完成加载时,它将正确加载更多内容箭头.js,然后当滚动事件再次触发它时,它将在控制台浏览器中发出以下错误消息: VM249 embed.js:2 Uncaught

我在stackoverflow上注意到了另一个类似这样的问题,并且已经查看了它,但它并没有回答/解决我所处的错误发生的情况

我正在尝试使这两个脚本,
embed.js
(插件)和
more content arrow.js
(我的脚本)在加载文档时在页面上正常工作。当我删除其中一个脚本时,其中一个脚本可以工作,但不能同时删除两个脚本。当页面首先完成加载时,它将正确加载
更多内容箭头.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.");
  });
});
我在这里重新创建了一个JSFIDLE,其中包含未捕获类型错误:


您的错误出现在
更多内容arrow.js
文件中,您将整数作为第三个参数传递,该参数不是处理程序,这是


您的错误似乎出现在
more content arrow.js
文件中,您将整数作为第三个参数传递,而该参数不是处理程序,这是的jquery文档


您的代码似乎正在运行中。我运行了它,刚刚收到了消息框,没有任何错误。当然,正如@yezzz所建议的,我删除了一个额外的embed.js。所以,也许这就是原因。@jrook猜测您没有滚动我认为这也是原因,但看起来不是,所以我删除了我的答案。您的代码的可能副本似乎正在处理中。我运行了它,刚刚收到了消息框,没有任何错误。当然,正如@yezzz所建议的,我删除了一个额外的embed.js。所以也许这就是原因。@jrook猜测您没有滚动我认为这也是原因,但看起来不是,所以我删除了我的答案。令我惊讶的是,可能的重复错误消失了,但我需要jquery.event.js也工作,因为它会延迟未调用滚动事件的时间(本例中为800毫秒)当页脚在视图中时隐藏箭头。而且,使用它是完全有效的,因为jquery.event.js支持这种标记。看看这里:@TheAmazingKnight这可能是因为您要将其绑定到窗口对象,请使用选择器(如
id
)进行尝试!我懂了。但它仍然不能与body标记、类或id一起工作,只能使用窗口。试着想出其他解决方案来让这一切顺利进行。嗯,好吧,我想推荐几件事;首先,将您的
embed.js
依赖关系移动到
jquery.unnotlet
脚本上方。然后将事件传递到
on()
回调并调用
event.stopPropagation()以避免任何事件冒泡问题!非常感谢你。上述评论有所帮助。我是否将整个答案标记为正确?或者你想在上面的答案后面加上一个?我让它在不删除最后的整数的情况下工作。再次感谢。令我惊讶的是,错误消失了,但我需要jquery.event.js也能工作,因为它会延迟未调用滚动事件的时间(本例中为800毫秒),并在页脚可见时隐藏箭头。而且,使用它是完全有效的,因为jquery.event.js支持这种标记。看看这里:@TheAmazingKnight这可能是因为您要将其绑定到窗口对象,请使用选择器(如
id
)进行尝试!我懂了。但它仍然不能与body标记、类或id一起工作,只能使用窗口。试着想出其他解决方案来让这一切顺利进行。嗯,好吧,我想推荐几件事;首先,将您的
embed.js
依赖关系移动到
jquery.unnotlet
脚本上方。然后将事件传递到
on()
回调并调用
event.stopPropagation()以避免任何事件冒泡问题!非常感谢你。上述评论有所帮助。我是否将整个答案标记为正确?或者你想在上面的答案后面加上一个?我让它在不删除最后的整数的情况下工作。再次感谢。
$(window).on('scroll', function () {
    if (!footerIsVisible) {
        $('.bounce').fadeIn(300);
    }
}); // <--- removed integer here.
$(window).on('scroll', function (e) {
    e.stopPropagation();
    if (!footerIsVisible) {
        $('.bounce').fadeIn(300);
    }
}, 800);