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 を使用してそれぞれの変更を監視し、要素の編集が完了したときに、その 1 つの要素の新しいデータを AJAX (AJAX とサーバー) を使用してデータベースに送信できるようにすることです。 -側の部分は既に行われています)。イベントなどを使用してこれを行いたいのですがonblur、フォーカス/ぼかしのためにこれらの要素 (100 行 x 各 4 要素 = 400+ 要素) をすべて監視し、どの要素が変化する。jQueryattributeStartsWithセレクターを使用してそれらをすべて選択すると、それらすべてを見ることができますが、そのうちの 1 つがフォーカスを失った場合、それがどれであったかをどのように知ることができますか?

4

1 に答える 1

0

このようなことをしてください。最初に編集可能な TD にクラスを割り当てて、選択を簡単にします。class="editable" としましょう。

$(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 に答える