繁体   English   中英

$(this)和event.target不同,但应该相同

[英]$(this) and event.target different but should be the same

我有以下代码将click事件功能连接到Submit按钮。 我知道event.targetthis并不总是相同的(据我所知,这取决于事件附加到的位置以及实际触发它的人),但是在这种情况下,事件附加到了按钮上并且按钮也触发了它,因此它们应该相同。 还是我错了?

 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.

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