假設我有這個jQuery代碼。我如何訪問委託給jQuery的元素?
$(document).delegate('a[title]', 'click', function(event) {
var txt = // href value of the link ;
alert("txt");
})
如何獲取鏈接的href
屬性的值?我不能使用$(this)
,因爲這會引用$(document)
。
假設我有這個jQuery代碼。我如何訪問委託給jQuery的元素?
$(document).delegate('a[title]', 'click', function(event) {
var txt = // href value of the link ;
alert("txt");
})
如何獲取鏈接的href
屬性的值?我不能使用$(this)
,因爲這會引用$(document)
。
更好地使用來自jQuery(1.7+)的.on()
,因爲.delegate()
,.bind()
和.live()
將被棄用。
//literally: bind to "document" a "click" handler for "a"
$(document).on('click', 'a', function(event) {
var txt = this.href; //or $(this).attr('href');
alert(txt);
})
理想情況下,你想處理程序綁定到所有你想要影響的元素的最近的共同的父。綁定到document
是元素的長途電話,這可能會導致嚴重的性能損失。
在jQuery 1.7的,所述.live()方法被棄用。使用.on()附加事件處理程序。老版本的jQuery用戶應優先使用.delegate(),而不要使用.live()。
.delegate()
在jQuery 1.7,.delegate()已經被。對()方法取代。然而,對於較早的版本,它仍然是使用事件委派的最有效手段。
.on()
爲.bind()
靈活的處理:在jQuery 1.7中,。對()方法是事件處理程序的附連到所述優選的方法文件。對於早期版本,.bind()方法用於將事件處理程序直接附加到元素。處理程序被附加到jQuery對象中當前選定的元素上,所以這些元素必須存在於對.bind()的調用發生時。要獲得更靈活的事件綁定,請參閱.on()或.delegate()中的事件委託討論。
*「因爲'.delegate()','.bind()'和'。()'將被棄用。」*你有這方面的資料嗎? – 2012-03-22 03:05:47
@amnotiam更新 – Joseph 2012-03-22 03:16:03
$(本)
指點擊的錨。
不,'$(this)'會引用委託元素。閱讀文檔。 http://api.jquery.com/delegate/ – 2012-03-22 02:55:44
哦.. woops:O應該做了我的功課或嘗試了一些東西。多謝你們。 – dangerChihuahua007 2012-03-22 03:08:34