0

语境

我在几行上有 3 个按钮(编辑、删除、取消订阅)。

这 3 个按钮是 3 个不同的类,但单击处理程序相同。

此类等于用于 ajax 调用的 3 个操作的名称。

所以在点击处理程序中,我需要检索已被点击的选择器的特定部分。

目前我使用我编写的以下代码

问题

在 2-3 行中并使用 class=action system,有没有更好的方法来解决我的问题?

我正在寻找类似的东西,但我没有找到:

$.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...
});​
4

3 回答 3

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/

于 2012-09-05T13:37:36.347 回答
0
if($(this).is('.this')) ...
if($(this).is('.that')) ...
于 2012-09-05T13:33:45.053 回答
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'));
});
于 2012-09-13T08:07:06.673 回答