我在理解 jQuery Ui Widget 工厂的事件处理方面有一点问题。
看到这个截图:
$(function () {
$.widget("custom.superduper", {
_create: function () {
this._on($(this.element, "a"), {
click: function (event) {
console.log($(event.target));
}
});
}
});
$("#gallery").superduper();
});
在此 HTML 上运行:
<ul id="gallery">
<li><a href="#"><img src="http://www.placehold.it/50x50" /></a></li>
<li><a href="#"><img src="http://www.placehold.it/50x50" /></a></li>
<li><a href="#"><img src="http://www.placehold.it/50x50" /></a></li>
</ul>
工作演示:http: //jsfiddle.net/ech2htrt/2/
当您单击图库中的图像时,控制台输出为:
对象[img 50x50]
我希望它是<a>
画廊内的元素。当然我可以使用closest()
orparent()
来获得想要的元素,但这感觉很不自然。我在事件处理程序的定义中哪里出错了?
有没有更好的方法来获取事件触发元素?当我使用this
或$(this)
引用始终是小部件元素时。