我有很多在页面加载时运行的 jquery,它导致我的一个元素消失(使其成为 style=display:none;)。我猜 jquery hide() 函数被错误地应用于这个元素,但我无法找出是哪个语句导致它。
是否有任何 javascript、firebug 等函数或工具可以本质上充当 html 元素的断点/侦听器(也许我可以在浏览器中运行)?很高兴看到页面加载时影响该元素的功能。
我有很多在页面加载时运行的 jquery,它导致我的一个元素消失(使其成为 style=display:none;)。我猜 jquery hide() 函数被错误地应用于这个元素,但我无法找出是哪个语句导致它。
是否有任何 javascript、firebug 等函数或工具可以本质上充当 html 元素的断点/侦听器(也许我可以在浏览器中运行)?很高兴看到页面加载时影响该元素的功能。
哈!我刚刚找到了我想要的答案。Firebug 在 HTML 选项卡上有一个“break on mutate”功能,它将显示 javascript 文件中的哪一行正在更改 html 元素。它在 Firebug 1.5 中,今天发布的新 1.5.2 更新移动了图标,所以我注意到了它,发现它纯粹是运气!
http://www.softwareishard.com/blog/firebug/firebug-15-break-on-next/
谢谢你们的尝试!
您可以找到使用 getter/setter 访问元素的位置。但是,setter 方法似乎不适用于 chrome ......它适用于最新版本的雷区 [firefox beta],不过......所以你可以测试一下我猜 =)
myElement.style.__defineSetter__("backgroundColor", function(val)
{
var cur = arguments.callee;
var callLog = "";
while(cur != null)
{
callLog = cur.caller + "\n" + callLog;
//alert(cur.caller);
cur = cur.caller;
}
alert(callLog);
}
);
哦,但它不会让你真正“设置”变量。为此,您定义一个虚拟变量并设置它。然后,当您定义 getter [with __defineGetter__
] 时,您会返回该值