我有一個小問題,理解jQuery Ui Widget工廠的事件處理。jQuery UI小部件工廠_on事件返回意外事件目標
看到這個剪斷:
$(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 50×50]
我希望它是庫內部的<a>
元件。當然,我可以使用closest()
或parent()
來獲得所需的元素,但感覺相當不自然。事件處理程序的定義在哪裏出錯?
有沒有更好的方法來獲取事件觸發元素?當我使用this
或$(this)
時,引用始終是小部件元素。
輝煌。非常感謝你。這裏是你的修復程序的演示:http://jsfiddle.net/ech2htrt/3/ – 2014-09-23 14:30:02