2012-09-05 22 views
0

上下文

我有3個按鈕在幾行(編輯,刪除,unscribe)。HTML class = Ajax動作,如何讓點擊的類調用好的動作?

這3個按鈕是3個不同的類,但相同的點擊處理程序。

這些類與用於ajax調用的3個動作的名稱相同。

因此,進入點擊處理程序,我需要檢索已被點擊的選擇器的特定部分。

目前我使用下面的代碼,我寫

問題

在2-3線和使用類=訴訟制度,有沒有更好的辦法來解決我的問題?

我正在尋找類似的東西,但我沒有找到:

$.post(url + '&action=' + classClickedIntoTheSelector.replace(/\./g, '') ... 

代碼+ JSFiddle

<button class="actionLink edit btn">Éditer</button> 
<button class="actionLink delete btn btn-warning">Supprimer</button>​ 
$('.edit, .delete').click(function() { 
    var a = $('.this, .that').selector.replace(/\./g, '').split(', '); 
    var b = $(this).attr('class').split(' '); 
    var action; 

    for (var i = 0; i < a.length; i++) { 
     for (var j = 0; j < b.length; j++) { 
      action = a[i] == b[j] ? a[i] : action; 
     }    
    } 

    $.post(url + '&action=' + action... 
});​ 

回答

0

最後我使用的通用類和數據屬性:

<button class="actionLink btn" data-action="edit">Éditer</button> 
<button class="actionLink btn" data-action="delete">Supprimer</button>​ 
$j('.actionLink').click(function() { 
    $.post(url + '&action=' + $(this).data('action')); 
}); 
0
if($(this).is('.this')) ... 
if($(this).is('.that')) ... 
2

嘗試......

var l = function (x) { return console.log(x); }; 

$('.this, .that').click(function() { 
    var $this = $(this);   
    if ($this.hasClass("this")) { 
     l("this"); 
    } 
    if ($this.hasClass("that")) { 
     l("that"); 
    } 
});​ 

http://jsfiddle.net/3wj3R/2/

相關問題