3

我知道有手动方法,我用谷歌搜索但找不到自动方法。

我有一些相当复杂的代码,其中一个元素可以changed通过 jQuery 以几种不同的方式使用,在整个代码执行期间的不同时间出于不同的原因,具体取决于各种事情。

我试图找出一个问题,它改变不正确,并且无法准确确定哪个change()事件在不应该改变的地方发生变化。

无论如何,我可以临时添加以下内容:

$(document).on('change', '.myClass', function (e){
    console.log(e.functionOrLineWhichTriggerThis);
});

出于调试/故障查找目的?

4

2 回答 2

3

您可以尝试创建错误并打印其堆栈跟踪的旧技巧:

$(document).on('change', '.myClass', function (e){
    var error = new Error();
    console.log(error.stack);
});

stack 属性不是标准的,但似乎受到主要浏览器的支持。您可以在此处获取有关它的更多信息:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error/Stack

于 2013-08-18T11:02:06.223 回答
-1

您可以在要跟踪的每个函数中定义变量,然后可以让函数在触发时设置变量。然后您可以在浏览器的控制台中检查变量的值并找出使用了哪个函数。

于 2013-08-18T10:38:48.050 回答