今天遇到了又一個(gè)神奇的問(wèn)題宿亡,起因是做一個(gè)開(kāi)啟禁用功能的按鈕常遂,先給按鈕定義事件。
$('.pro_on').click(project.proTurnOff);
$('.pro_off').click(project.proTurnOn);
在這開(kāi)啟事件函數(shù)中這樣寫(xiě)挽荠,禁用事件同理克胳。
//開(kāi)啟按鈕事件
Project.prototype.proTurnOn = function(){
pro_id = $(this).attr('id');
var This = $(this);
$.ajax({
url:'/project_user/'+pro_id+'/edit',
type:'get',
data:{
disable:0
},
beforeSend:function(){
$('.loading').show();
},
success:function(data){
if(data.status==200){
This.html('禁用');
This.removeClass('pro_off').addClass('pro_on');
alert('修改為開(kāi)啟');
$('.pro_on').click(project.proTurnOff);
$('.pro_off').click(project.proTurnOn);
}
}
})
};
這里需要注意,修改class之后坤按,前面定義的事件失效了毯欣,需要重新定義才生效。但是這個(gè)時(shí)候臭脓,神奇的事情發(fā)生了酗钞,點(diǎn)擊前幾次的時(shí)候,開(kāi)啟禁用功能都正常来累,但是當(dāng)從第四次點(diǎn)擊開(kāi)始砚作,每點(diǎn)擊一次,就相當(dāng)于點(diǎn)擊了n+1次嘹锁,時(shí)間觸發(fā)的次數(shù)越來(lái)越多葫录,后經(jīng)大師(兄弟會(huì)--王飛龍)指點(diǎn),需要在重新定義點(diǎn)擊時(shí)間之前领猾,先取消之前的事件綁定米同。因此,修改如下
$('.pro_on').click(project.proTurnOff);
$('.pro_off').click(project.proTurnOn);
修改為:
$('.pro_on').off("click").click(project.proTurnOff);
$('.pro_off').off("click").click(project.proTurnOn);
像往常一下摔竿,不知道為什么面粮,但是,解決了继低。