繁体   English   中英

是否有可能检测到哪行或函数触发了元素上的jquery更改事件?

[英]Is it possible to detect which line, or function triggered a jquery change event on an element?

我知道有一些手动方法可以解决这个问题,尽管我已经使用Google搜索,但是找不到自动方法。

我有一些相当复杂的代码,其中jQuery可以以几种不同方式changed元素,由于各种原因,在整个代码执行期间的不同时间,出于不同的原因。

我试图找出一个问题,该问题发生了不正确的更改,并且无法准确确定哪个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属性不是标准的,但似乎主要的浏览器都支持。 您可以在此处获取有关它的更多信息:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM