2010-01-28 47 views
2

我有一个错误,发生在我使用jQuery设置的特定事件处理程序中,并且代码只是中断而没有显示任何错误。当我用YUI编写类似的东西时,我会设置YAHOO.util.Event.throwErrors = true;在我的开发中。版本,这是告诉YUI的事件处理程序抛出错误。我找不到任何类似的东西,难道只是我瞎了眼,看不到它?jQuery可以从我的事件处理程序中抛出一个错误吗?

谢谢!

下面是一个例子...

<html> 
<head> 
<title>jQuery Events</title> 
</head> 
<script src="https://www.google.com/jsapi"></script> 
<script> 
google.load('jquery', '1.3.2'); 
</script> 
<body> 
<p>click me</p> 
<script type="text/javascript"> 
    $(document).ready(function() { 
     $("p").click(function() { 
      console.log('How to display an error here similar to the native onclick ?'); 
      qaz; 
      console.log('this line is not executed because of the error, but the error is not reported. Is there a way to have jQuery report those errors ?'); 
     }); 
    }); 
</script> 
</body> 
</html> 
+2

如果我运行这段代码,两个事件处理程序都会触发&'console.log'写出firebug,然后死在'qaz'上是未定义的......这不是您所期望的吗? – Alconja 2010-01-28 22:33:25

+0

我想这个例子有点令人困惑,现在我改变了它,所以它更清楚我在找什么。如果再次运行它,则只会看到一个console.log被写出,并且没有错误报告。这是我期望jQuery能够正常工作的方式,但是我想知道是否有办法使它在qaz上报告错误;使调试更容易? – SBUJOLD 2010-01-28 23:41:18

+0

你的意思是Javascript吗? jQuery不处理语言级错误。这是一个函数库。 – 2011-06-13 14:41:53

回答

1

我敢肯定的jQuery不会为你吞下错误,那么你绝对应该从你不确定qaz看到的错误。

运行您的更新页面,我仍然可以看到console.log和Firebug中未定义的qaz上的错误。打开正常的浏览器错误控制台,我也看到了那里的qaz is not defined (...temp.html - Line: 15)消息。在IE中,我当然会得到"console" is undefined,但这只是表明错误也会通过那里(因为没有控制台)。假设你运行的是完全相同的html/js文件,显然还有其他一些变量会导致你的问题。

你运行的是什么版本的Firebug?我在调试javascript &时出现了各种随机问题,版本1.4.x,但1.5.0似乎更加一致和稳定。

+0

我使用的是Firebug 1.5,但是在阅读你所说的内容之后,我想我会检查更新并从FF 3.5.7更新到3.6,并且确信现在出现的错误(以及我在第一次看到此问题的实际应用程序中) 我100%确定它不是昨天,所以我的机器上肯定挂了一些东西,而且这不是FF 3.5.7因为我现在只是在虚拟机上试了一下,我得到了正确的行为。 我感到困惑,因为我曾经使用YUI,它会吞噬许多事件处理程序中的错误,除非您将其设置为不这样做。 谢谢! – SBUJOLD 2010-01-29 14:42:02

相关问题