【问题标题】:How to resolve this error type 'Uncaught TypeError: (...) is not a function'?如何解决此错误类型'Uncaught TypeError: (...) is not a function'?
【发布时间】:2023-04-08 22:05:01
【问题描述】:

我知道关于 stackoverflow 的另一个类似问题并查看了它,但它并没有回答/解决我遇到的错误发生的情况。

我正在尝试使两个脚本,embed.js(插件)和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:

https://jsfiddle.net/wr6cc2ct/2/

【问题讨论】:

标签: javascript jquery error-handling typeerror getscript


【解决方案1】:

您的错误出现在您的 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); 

【讨论】:

  • 令我惊讶的是,错误消失了,但我需要 jquery.event.js 也可以工作,因为它会延迟未调用滚动事件的时间(在这种情况下为 800 毫秒)和当页脚在视图中时隐藏箭头。此外,使用它是完全有效的,因为 jquery.event.js 支持这个标记。看看这里:yckart.github.io/jquery.unevent.js
  • @TheAmazingKnight 这可能是因为您将它绑定到窗口对象,请尝试使用选择器(如id 或class)!
  • 我明白了。但无济于事,它仍然不适用于正文标签、类或 ID,只有窗口。试图想出其他解决方案来完成这项工作。嗯。
  • 好的,我推荐几件事;首先,将您的 embed.js 依赖项移到 jquery.unevent 脚本之上。然后将事件传递给on() 回调并调用event.stopPropagation(); 以避免任何事件冒泡问题!
  • 非常感谢。上面的评论有帮助。我是否将整个答案标记为正确?或者也许你想附加到上面的答案?我让它工作而不删除最后的整数。再次感谢。
猜你喜欢
  • 2014-04-06
  • 1970-01-01
  • 1970-01-01
  • 2017-07-05
  • 1970-01-01
  • 1970-01-01
  • 2018-07-17
  • 2023-02-17
  • 1970-01-01
相关资源
最近更新 更多