【问题标题】:Uncaught TypeError without ability to find the reason无法找到原因的未捕获 TypeError
【发布时间】:2014-08-01 07:07:44
【问题描述】:

每次我右键单击应用程序中的任意位置时,jQuery 都会在第 5095 行抛出错误:

Uncaught TypeError: undefined is not a function

为了找到这个错误的原因,我尝试了两种方法都没有成功:

1.调试 jQuery:

在开发工具中,我在第 5095 行调试 jQuery。问题:当我将光标移到页面上时,它会停止并中断。我不可能让它进行右键单击。即使我在出现的 Chrome 的 Debug-Line 中按下播放,它也会立即再次触发,即使我不会移动光标!

2。在我的代码中搜索原因:

由于这个错误被抛出了很长时间,我现在不知道在哪里搜索。我有多个 js 文件。所以我意识到当我释放鼠标按钮时会抛出错误。所以我在我的所有代码中搜索了任何鼠标(-向上/向下)事件但没有成功(发现有几个如果我设置断点就不会触发)

现在我不知道如何找到它的来源。我认为调试抛出错误的 jQuery 行将使我能够访问堆栈变量,并可能提供有关其来源的更多信息。有什么建议吗?

请不要让我发布代码。由于我不知道错误发生在哪里,我可能会发布数千行 JavaScript。我需要一种合乎逻辑的方法来找到错误源。

【问题讨论】:

  • 你的代码在服务器上可以链接到的地方吗?
  • 抱歉,这对您没有帮助。我确定。它的代码太多。为此,我需要一些合乎逻辑的方法(帮助)。我的主要问题是当我将光标放在网页上时正在调试 jQuery,这使我能够右键单击页面,因为错误仅在页面右键单击(任何地方)时引发
  • 好吧,我建议注释掉代码,直到错误消失。您可以通过这种方式缩小嫌疑人范围,然后开始挖掘
  • 你为什么不把你的代码贴在这里,让我们帮你解决它?这绝对是你的脚本问题,你知道怎么打开调试工具吗?如果是,应该可以很容易地找到错误的大致来源
  • Se0ng11 请阅读我的问题而不仅仅是标题!谢谢!

标签: javascript jquery jquery-ui jquery-plugins


【解决方案1】:

该错误绝对不在 jquery 或 jquery-ui 文件中。它肯定在插件的代码或您的自定义代码中。

想想错误可能出在哪里。只做一个基本的估计。并在这些行之前放置一个console.log() 并再次运行它。查看错误是否在控制台输出之前发生。如果之前发生过,请调查在此行之前执行的代码以及此文件之前包含的 javascript 文件。如果它发生在做相反的事情之后。您可以通过输入多个console.log()s来缩小范围

【讨论】:

  • 确定这不是 jQuery 错误。我在我的代码中搜索了所有 mouseevent 绑定,并在设置断点旁边的第一行中放置了一个 console.log。他们都没有被解雇。这就是为什么我会这么难受。
  • 您说释放鼠标按钮时会引发错误。 click() 会发生这种情况您确定您的任何点击事件侦听器都没有导致错误吗?
  • 忘了说:只有在右键释放时才会抛出错误
【解决方案2】:

您可以查看事件

$._data(element, "events")

但您无法看到绑定在代码中的位置

也许有人知道

【讨论】:

    猜你喜欢
    • 2016-07-01
    • 2012-11-12
    • 1970-01-01
    • 2020-06-27
    • 2021-11-17
    • 1970-01-01
    • 2019-05-18
    • 2019-09-19
    • 2017-10-05
    相关资源
    最近更新 更多