gpt4 book ai didi

javascript - jQuery 是否在不设置普通事件处理程序的情况下处理事件?

转载 作者:行者123 更新时间:2023-11-30 18:56:23 24 4
gpt4 key购买 nike

对于 HTML 页面上的 div,我使用 jQuery 添加了一个点击事件处理程序:

  $(document).ready(function(){    

$("div").click(function() { alert("clicked!"); });

});

然后我使用 Visual Studio 2008(或 IE8)调试器单步执行 javascript/jquery。我希望在调试器中看到一个值:

$(“div”)[0].onclick

($(“div”)[0] 是选择器结果集合中的第一个 div,$(“div”))。

但我没有。我认为 jQuery 的事件分配方法(例如 .click(function))实际上是为元素的基础事件分配值。他们不是?

换句话说,这两行代码没有相同的效果,但我认为它们会:

$("div").click(function() { alert("clicked!"); }); // (Line 1)
$("div")[0].onclick = function() { alert("clicked!"); }; // (Line 2)

谁能解释一下或指出我做错了什么?我想在我的代码中使用第 1 行,但根据我的需要,我似乎必须使用第 2 行(仅供引用,我打算使用实际功能,而不仅仅是显示警报 :-))。

谢谢

最佳答案

jQuery 不使用 onclick 属性将事件附加到元素。它使用 attachEvent(IE) 或 addEventListener(所有其他)。您可以在未压缩的 jquery-1.3.2.js 的第 2500-2502 行中找到确凿证据。 .

但是,您应该能够在 jQuery 事件处理程序中放置一个断点并让 Visual Studio 停在那里。在按 F9 之前在事件处理程序的主体内部单击(例如,在“警报”上),或者将事件处理程序主体分成自己的行,例如

$(document).ready(function(){    
$("div").click(function() {
alert("clicked!"); // place a breakpoint on this line
});
});

关于javascript - jQuery 是否在不设置普通事件处理程序的情况下处理事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1931178/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com