datatables fnRowCallback:绑定点击事件处理程序

时间:2013-03-05 12:39:04

标签: ajax jquery datatables

使用datatables和fnRowCallback。

我正在尝试将click绑定到第二列的每一行。 该表使用正确的变量返回第二列中的正确锚点,但是当我单击链接时,ajax将每个锚点作为相同的用户ID发送。

我想我需要使用.each()。点击,但我尝试的每件事都不起作用。

任何人都知道我做错了什么.....

    "fnRowCallback": function( nRow, aData, iDisplayIndex ) {
    $('td:eq(1)', nRow).html('<a href="#" id="view_log.php?userid='+ aData[1] +'&acyear='+ aData[2] +'" class="view_log">'+ aData[3] +'</a>').click(function() {
        var url = $('.view_log').attr("id");
        var timestamp = (new Date()).getTime();
        $("#table_container").hide();
        $(".themenu").hide();
        $("#log").show();
        $.ajax({
        type: "GET",
        url: ''+url+'&x='+timestamp,
        dataType: "html",
        success: function(data) {
              $("#log").html(data);
        }
       });
    });

    }

1 个答案:

答案 0 :(得分:1)

$('.view_log').attr("id");只会出现第一次。

在此SO页面中,在控制台中尝试:

$('.post-tag')   //returns all the tags element
$('.post-tag').attr('href')      //returns only the href value of the first occurrance

在处理程序中,指定事件参数,然后使用$(e.target)代替。 所以$(e.target).attr('id')应该完成这项工作。

... .click(function(e){
  var url = $(e.target).attr('id');
});

Demo