2012-12-09 46 views
1

我有這個jQuery代碼:jQuery的事件綁定到鏈路發生故障時

$(document).ready(function(){ 
$('a').bind('click', false); 
var url; 
$('a').on('click',function(e){ 
    url=$(this).attr('href'); //; 
    $('#AjaxPage').load(url+" .AjaxContent"); 
}); 

});

問題是click事件的作品第一次..但是從加載的功能,鏈接有不加載的內容有click事件我綁定..這是爲什麼? 我想你使用 '上',你會用 '活'

更新:

現在我的加載功能犯規得到執行:

$(document).ready(function(){ 


$('a').bind('click', false); 
    var url; 


$(document).on('click', 'a',function(){ 
     url=$(this).attr('href'); //; 
     $('#AjaxPage').load(url+" .AjaxContent"); 
    }); 
}); 
+0

你爲什麼這樣做'$( 'A')綁定( '點擊',假);'? –

+0

我可能想通過編程方式啓用鏈接,稍後再做此操作.. $('a')。bind('click',true);或使用解除綁定功能 – BlackFire27

回答

3

更換

$('a').on('click', function(e){ 

$(document).on('click', 'a', function(e){ // replace document with a more precise selector if available 

相反liveon將處理在一個jQuery集合和代表驗證提供選擇的事件到目標事件。 jQuery集合必須是非空的。當然,它可以比document更精確,但必須是要添加的元素的父項,並且您希望截取該事件。

+0

如果使用.on()函數在$(document)上使用,會減慢頁面的速度嗎?我一直覺得你想盡可能縮小範圍。根據你的經驗,它真的有很大的不同嗎? – VictorKilo

+1

是的,你想盡可能地縮小它,但這是一個基本的操作。這僅在有人點擊時計算出來,實際上它足夠快。 –

+0

代替'$(文件)。對的(..'你可以縮小它'$( '#AjaxPage')上(...' – techfoobar