Javascript 我可以吗;跨过;调试时只使用jQuery代码?

Javascript 我可以吗;跨过;调试时只使用jQuery代码?,javascript,jquery,visual-studio,firefox,firebug,Javascript,Jquery,Visual Studio,Firefox,Firebug,在逐步执行使用jQuery的脚本时,我只想测试我编写的代码。我不想进入jQuery文件——我没有调试jQuery,只是调试我自己的文件 有没有办法告诉调试器不要进入jQuery文件?我使用Visual Studio+Internet Explorer以及Firefox+Firebug单步执行代码。。。两人似乎都喜欢单步执行几十条jQuery语句 例如,假设我有这样一个脚本: $("div").each(function() { $(this).hide(); }); 从技术上讲,这是一条

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

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

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

$("div").each(function() {
   $(this).hide();
});
从技术上讲,这是一条单独的语句——因此“StepOver”将一次执行所有代码,这将跳过内部的“hide”语句。然而,“Step Into”将带我进入jQuery代码,在进入“hide”语句之前,我将不得不跨过几十行代码

我希望调试器完全忽略jQuery代码,这样我就可以轻松地单步执行自己的代码,而不必单步执行jQuery代码


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

至少Firebug的JavaScript调试器有一个“跳过”选项,它仍然不会下降到函数调用中


但是,您必须根据调用的函数类型手动选择“单步执行(进入)”和“单步执行”。

F10应单步执行函数调用,F11应单步执行函数调用。这适用于VS和firebug。

答案肯定是“不,此功能不存在”


你来这里的动机是什么?在我看来,在第2行设置一个断点,并在第1行的“结果集”上创建一个监视,这将得到您可能想要的结果。

答案相当简单,您只需重构函数即可。我想不起来了

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

function doThis(object) {
   $(this).hide();
}
几乎可以肯定的是,它可以使用一个相当不错的调试器

是的,你可以 至少在FireFox(25+)和Chrome(30+)中使用

在FireFox中,此功能被称为“黑盒”(blackboxing),Firefox25将提供此功能。让我们做你想做的事情:

Chrome(v30+)也引入了此功能,尽管查找/配置起来比较困难。它被称为“跳过具有特定名称的源”,Collin Miller在描述如何配置它时做得非常出色:


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

当然不是对你问题的回答,但是你可以在内部语句上设置一个断点,然后从外部语句继续,在这种情况下。是的,这是真的。但是对于正常的调试,我需要在每一行上设置一个断点来获得我想要的行为。这也是我一直在寻找的特性。我认为这对Firebug来说是一个很好的补充。我怀疑OP是想从外部的“each”语句开始一步,然后将下一个语句视为闭包中的语句。这似乎是在这里踏步时的自然愿望。吉诃多是对的。从技术上讲,上面的示例只是一条语句,所以如果我按F10,整个块都将被执行。但是,如果我按F11键,在输入“function(){$(this).hide()}”之前,将执行数百条jQuery语句,因此我将坐在那里按F11键,直到看到执行返回到脚本。应该有一种方法可以完全忽略jQuery代码;不管你怎么称呼它,它的行为方式和我之前给出的例子完全相同。如果调试器在第1行,并且您“跨入”,那么您将在“doThis”之前跨入十几行jQuery。如果您“跳过”,您还将跳过“doThis”函数。不过,您应该能够在hide语句上设置断点。另外,如果你正在调试JS,如果你还没有调试的话,可以使用Firefox和Firebug。但我通常有数百行的大型脚本文件,通常是嵌套的jQuery样式,我不想在每一行上设置断点。我的动机是我希望能够分步调试我的代码,而无需进出其他源文件。很好的发现!感谢您再次访问此问题,并改进每个人的调试体验。我想接受这个答案,但我不能,直到FF 25和Chrome 30发布。非常感谢。已证实的Chrome 30已发布。感谢您找到此新功能@斯科蒂,不客气!很高兴我能帮忙。谢谢你回来接受我的回答:)只是一个快速的跟进@流感再次谢谢你!这样做很好,节省了我很多时间。很高兴他们添加了这个功能。你的两个链接都指向同一个页面。你能在有机会的时候更新/修复firefox链接吗?我相信我可以在谷歌上找到它,但如果它出现在这个答案中,以及其他在这个页面上寻找这个答案的人,那将是非常有帮助的。非常感谢,当然,谢谢你的回答!我也在寻找这个解决方案。