我可以在调试时“跳过”jQuery代码吗?

在单步执行使用jQuery的脚本时,我只想测试我编写的代码。 我不想进入jQuery文件 – 我不是调试jQuery,只是我自己的文件。

有没有办法告诉调试器不要进入jQuery文件? 我使用Visual Studio + Internet Explorer以及Firefox + Firebug来逐步执行代码……两者似乎都喜欢介绍几十个jQuery语句。

例如,假设我有一个这样的脚本:

$("div").each(function() { $(this).hide(); }); 

这在技术上是单个语句 – 因此“Step Over”将立即执行所有代码,这将跳过内部“hide”语句。 但是,“Step Into”将把我带到jQuery代码,在将它带到“hide”语句之前,我必须先执行几十行代码。

我想让调试器完全忽略jQuery代码,因此我可以轻松地单步执行自己的代码,而不必单步执行jQuery代码。

在C#中,可以通过在类上使用[DebuggerStepThrough()]属性来实现。 但这对JavaScript没有帮助。

是的你可以

至少在FireFox(25+)和Chrome(30+)中。

在FireFox中,这个function被称为"Black boxing" ,并将与FireFox 25一起使用。它可以完全满足您的需求:

Nick Fitzgerald和Chris Heilmann:“Firefox开发人员工具的新function:第25集”

此function也被引入Chrome(v30 +),尽管查找/配置更加困难。 它被称为“跳过具有特定名称的来源”,而Collin Miller在描述如何配置它方面做得非常出色:

Collin Miller:“提示和技巧:在Chrome中调试时忽略库代码”

我现在正在Chrome中使用它。 它就像一个魅力,为我节省了很多时间。

很确定答案是“不,这个function不存在”。

但是你的动机是什么? 在我看来,就像在第2行设置一个断点并为第1行的“结果集”创建一个手表,而你在那里会得到你可能想要的东西。

F10应该跳过函数调用,F11应该进入函数调用。 这适用于VS和firebug。

至少Firebug的JavaScript调试器有一个“跳过”的选项,它仍然不会进入函数调用。

但是,您必须根据所调用的函数类型手动选择“step(into)”和“step over”。

答案很简单,你只需要重构函数。 我不记得了

 $("div").each(function() { doThis(this); }); function doThis(object) { $(this).hide(); } 

几乎肯定会使用中途不错的调试器。