2012-12-09 21 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