2012-08-02 64 views
0

我有一個按鈕,它是動態生成的。最初,當你點擊班級更改爲「不活動」時,它有「活動」類。當你再次點擊它應該改變爲活動。jquery開關問題

因此,我使用下面的代碼分配了點擊事件。

$(".active").on("click",function(){ 
$(this).removeClass('active').addClass('inactive'); 
}); 

$(".inactive").on("click",function(){ 
$(this).removeClass('inactive').addClass('active'); 
}); 

問題是每次調用第一個函數。當我使用live而不是它時,它工作正常。我怎樣才能解決這個問題。

回答

1

你不能簡單地改變.live.on

$(selector).live(event_type, function(){});

是相同

$(document).on(event_type, selector, function(){});

$("body").on("click", '.active', function(){ 
    $(this).removeClass('active').addClass('inactive'); 
}); 

$("body").on("click", '.inactive', function(){ 
    $(this).removeClass('inactive').addClass('active'); 
}); 
+0

感謝您的快速回答 – 2012-08-02 08:19:54

1

一種選擇,這將需要在HTML中的微小的變化會是這樣的:

$(function(){  
    $(".toggle").on("click", function(){ 
     $(this).toggleClass("active").toggleClass("inactive"); 
    });  
}); 

這將影響到分配了一個toggle類的所有元素,並假定它最初要麼inactiveactive

0

試試jquery的toggleClass方法。

我寫了一個演示here演示了兩種實現鏈接相同的方法。你可以爲按鈕做同樣的事情。