HTML class = Ajax动作,如何让类点击调用好动作?

时间:2012-09-05 13:31:39

标签: javascript jquery html algorithm

上下文

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

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

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

因此,在click处理程序中,我需要检索已单击的选择器的特定部分。

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

问题

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

3 个答案:

答案 0 :(得分: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/

答案 1 :(得分:0)

if($(this).is('.this')) ...
if($(this).is('.that')) ...

答案 2 :(得分: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'));
});