Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否可以检测哪一行或函数触发了元素上的jquery更改事件?_Javascript_Jquery_Debugging_Onchange - Fatal编程技术网

Javascript 是否可以检测哪一行或函数触发了元素上的jquery更改事件?

Javascript 是否可以检测哪一行或函数触发了元素上的jquery更改事件?,javascript,jquery,debugging,onchange,Javascript,Jquery,Debugging,Onchange,我知道有手动的方法,我在谷歌上搜索过,但找不到自动的方法 我有一些相当复杂的代码,其中一个元素可以通过jQuery以几种不同的方式进行更改,在整个代码执行过程中的不同时间,由于不同的原因,这取决于不同的事情 我试图找到一个错误更改的问题,并且很难准确确定哪个change()事件在不应该更改的地方更改 我是否可以临时添加以下内容: $(document).on('change', '.myClass', function (e){ console.log(e.functionOrLineW

我知道有手动的方法,我在谷歌上搜索过,但找不到自动的方法

我有一些相当复杂的代码,其中一个元素可以通过jQuery以几种不同的方式进行更改,在整个代码执行过程中的不同时间,由于不同的原因,这取决于不同的事情

我试图找到一个错误更改的问题,并且很难准确确定哪个
change()
事件在不应该更改的地方更改

我是否可以临时添加以下内容:

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

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

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

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

$(document).on('change', '.myClass', function (e){
    var error = new Error();
    console.log(error.stack);
});
stack属性不是标准的,但似乎受到主流浏览器的支持。您可以在此处获得更多信息:


虽然看起来有很多工作要做,但我希望jQuery可能有一种内置的功能,可以通过
事件
对象或其他什么来完成这项工作。但是我什么也找不到。我在我的项目中使用了上面提到的方法,它非常完美和整洁。他需要知道触发了哪个函数,而不是关于exceptionNope,这是可行的,
堆栈跟踪
追溯到调用生成错误的函数的函数,因此允许我回顾这个问题。非常好的电话,谢谢@jjsanchez