2013-08-19 127 views
0

控制點擊事件,目前,我有這樣的代碼運行:使用jQuery通過添加/刪除類

function blah() { 
jQuery(".class1").on("click", function() { 
    jQuery(this).text('Validate').addClass('class2').removeClass("class1"); 
    //more stuff here 
    jQuery(".class2").on("click", function() { 
      jQuery(this).removeClass("class1"); 
      //More stuff here 

這是不好的,因爲單擊事件傳播,每次發生點擊添加點擊事件多次。我試着封閉第一選擇(像這樣),並seperately具有點擊事件,但第二次點擊事件從未發生過(!):

function blah() { 
jQuery(".class1").on("click", function() { 
    jQuery(this).text('Validate').addClass('class2').removeClass("class1"); 
}); 
jQuery(".class2").on("click", function() { 
      jQuery(this).removeClass("class1"); 
      //More stuff here 

如何在第一次點擊一件事發生做我結構代碼,這樣,第二次單擊另一件事不發生單擊事件加倍

+2

我有種感覺,你試圖讓幫助修復黑客而不是你原來遇到的問題。你能解釋一下你想要做什麼嗎?這樣我們實際上可以爲您提供更好的答案。此外,如果您可以提供[小提琴](jsfiddle.net)來展示您的問題 - 這將會有所幫助。 – smerny

+0

這是正確的,我會在早上提供詳細的解釋。我想在這方面做得更好。 – Joseph

回答

1

你需要

jQuery(document).on("click", ".class1", function() { 
    jQuery(this).text('Validate').addClass('class2').removeClass("class1"); 
}); 
jQuery(document).on("click", ".class2", function() { 
      jQuery(this).removeClass("class1"); 
      //More stuff here 
}); 

演示:Fiddle

+0

這解決了我的問題。乾杯。 – Joseph