2013-11-01 59 views
0

我正在更改點擊鏈接類class2 &我想觸發事件class2而不是class1。我知道我可以手動檢查新類&然後觸發()它。有沒有其他方法?更新類的火事件

小提琴這裏:http://jsfiddle.net/usXa3/

HTML:

<a href="#" class="class1">Click me!</a> 

Jquery的我:

$('.class1').on('click', function(){ 
    console.log("class1 clicked"); 
    $(this).removeClass('class1').addClass('class2'); 
    $(this).off('click'); 
    //Do something here to fire class2 event. 
}); 
$(document).on('click', 'class2', function(){ 
    console.log("class2 clicked"); 
}); 

我的解決方案 - 尋找替代:

$('.class1').on('click', function(){ 
    var thisClass = $(this).attr('class'); 
    if(thisClass == "class1"); 
    { 
     $(this).removeClass('class1').addClass('class2'); 
    } 
    else if(thisClass == "class2") 
    { 
     $(".class2").trigger("click"); 
    } 
}); 

回答

1

使用one()喜歡,

$('.class1').one('click', function(){ 
    alert("class1 clicked"); 
    $(this).toggleClass('class1 class2'); 
    //Do something here to fire class2 event. 
    $('.class2').on('click', function(){ 
     alert("class2 clicked"); 
    }); 
}); 

Demo

+1

您可以通過使用toggleClass( 'class1的類class2')改善這一點;而不是添加和刪除類,這將實現相同的結果。 –

+0

@MikeOram你是對的我在我的答案中使用它。 –

+0

謝謝..這有助於。將接受這個答案在一分鐘內 – Krishna

1

嘗試DEMO

$('.class1').on('click', function() { 
    console.log("class1 clicked"); 
    $(this).toggleClass('class1 class2'); 
    $(this).off('click').on('click', function() { 
     console.log("class2 clicked"); 
    }); 
}); 

.toggleClass()

+1

謝謝..這有助於。 – Krishna

+0

@克里希納歡迎高興幫助:) –