[英]Should I be using “this” or “event.target” in javascript?
[英]$(this) and event.target different but should be the same
我有以下代码将click事件功能连接到Submit按钮。 我知道event.target
和this
并不总是相同的(据我所知,这取决于事件附加到的位置以及实际触发它的人),但是在这种情况下,事件附加到了按钮上并且按钮也触发了它,因此它们应该相同。 还是我错了?
modals.init = function () {
// wire up submit() function to the submit button
modals.config.$submitBtn.on('click', submit);
};
function submit(event) {
event.preventDefault();
var $this = $(this);
alert(event.target.id); // fine
alert($this.id); // undefined
}
它是$this.attr("id")
(jQuery元素)或this.id
(DOM元素)
是的,那么this === event.target
。
但是,如果将其包装到jQuery
包装器中,它将不再具有id
属性。 您可以使用this.id
或$(this).attr('id')
来获取属性,也可以使用$(this).prop('id')
来获取this.id
在这种情况下, this
一定是单击的元素,因此没有.id
属性,它是单击的元素的jQuery表示形式。
使用代码$(this)
生成一个jquery对象,并且必须使用jquery函数: alert($this.attr("id));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.