0

我有一个看起来像这样的表:

<table id="guests" class="table table-striped table-bordered">
  <tbody>
    <tr>
      <td id="guest1Name">John</td>
      <td id="guest1Relationship">Family</td>
      <td id="guest1NumberInParty">1</td>
      <td id="guest1InvitationSent">No</td>
    </tr>
    <tr>
      <td id="guest2Name">Joe</td>
      <td id="guest2Relationship">Family</td>
      <td id="guest2NumberInParty">1</td>
      <td id="guest2InvitationSent">No</td>
    </tr>
  </tbody>
</table>

这个表很快就会有超过 100 行。我想要做的是给每个<td>contenteditable 属性并使用 JavaScript/jQuery 观察每个属性的更改,以便当一个元素完成编辑时,可以使用 AJAX将一个元素的新数据发送到数据库(AJAX 和服务器-side 部分已经完成)。我想使用一个onblur事件或类似的东西来做到这一点,但我不知道如何观察所有这些元素(100 行 x 4 个元素每个 = 400+ 个元素)的焦点/模糊,并能够确定哪个元素改变。如果我使用 jQueryattributeStartsWith选择器将它们全部选中,我可以观看所有这些,但是当其中一个失去焦点时,我怎么知道它是哪一个?

4

1 回答 1

0

做这样的事情。首先为您的可编辑 TD 分配一个类,以便更容易选择。可以说类=“可编辑”。

$(document).ready(function(){
    $('.editable').blur(function(e){
        //to get something from the li that was just blurred use this
        //something like - 
        var value = $(this).text();
        //Ajax call 
    });
});

在事件函数中使用 this 关键字将允许您定位触发事件的元素。

于 2013-03-11T21:37:27.460 回答