jQuery事件委托和祖先

时间:2013-03-02 00:01:55

标签: jquery jquery-selectors

我在表格单元格中有几个<span>个元素。对于每个跨度,当用户点击它时,我使用事件委托来触发ajax请求。 (捕获事件的函数绑定到表格单元格。)

问题是ajax调用需要包含一个表行标识符,我不知道在哪里存储这个标识符,或者如何引用和使用它。

例如,假设表中的每一行代表一个Person,那么当用户点击该行中的一个span时,ajax调用需要包含personId。

personId应该是该行的一个属性(例如<tr class='person-id-123'>...)吗?或者也许是一个id(例如<tr id='person-id-123'>...)?如何在捕获click事件的函数中引用和使用它?

谢谢!

2 个答案:

答案 0 :(得分:2)

使用HTML5 dataset attributes

<tr data-person-id=123>

$(".tr-parent").on('click', 'tr', function () {
    //$(this).data('person-id') is also valid
    ajaxRequest(this.dataset.personId);
});

答案 1 :(得分:0)

为此你可以使用ID,类什么,因为从jquery我们可以获得价值。但如果你使用数据属性会更好。

现在在这里为您的范围

<span data-person-key="47" class="spanclass">
</span>

从jquery你可以得到这样的价值。

$(document).on("click",".spanclass",function(){
  var personKey = $(this).data("person-key");
  $.ajax({
    url: "whatever you url is. if its asp.net then method of controller will be here.or may be php page",
    type: "POST",
    data: {Personid : personKey },
    success://whatever you want to code in success,
    error://whatever you want to code in error
  });
});