ユーザーがテーブル内のセルをクリックしたときに編集可能にしようとしているテーブル内の行のリストがあります。私の計画は、このデータを更新するために AJAX 要求を行うことです。
これが私のHTMLの例です:
<tr>
<td>3</td>
<td class="textFieldCell"><span class="textField" data-question-id="3">Is the instructor aware of their self development and self improvement areas they are working toward as part of their planned delivery and self peer or tutor assessment?</span></td>
<td class="sortOrderFieldCell"><span class="sortOrderField" data-question-id="3">3</span></td>
<td><a href="#" class="deleteQuestion" data-questionid="3">Delete Question</a></td>
</tr>
ここでの考え方は、ユーザーがテーブル内のスパンをクリックすると、ユーザーがデータを変更できる入力ボックスに置き換えられ、ぼかしに対して AJAX 呼び出しが行われるというものです。私は AJAX 呼び出しを作成することに完全に満足していますが、ボックス テーブル セルで jQuery が一度だけ入力フィールドに変更できるという問題があります。この問題の段階的な説明は次のとおりです。
- ユーザーが表のセルをクリックすると、正常に機能し、スパンが入力ボックスに置き換えられます。
- 次に、ユーザーが入力ボックスをクリックしてオフにすると、入力ボックスが問題なくスパンに変わります。
- ここに問題があります。ユーザーが同じテーブル セルをクリックして再度編集しようとすると、jQuery が実行されません。
これが私のjQueryです:
jQuery('.sortOrderField').click(function() {
var input = jQuery('<input />', {'type': 'text', 'class': 'sortOrderField', 'name': 'aname', 'value': jQuery(this).html()});
jQuery(this).parent().append(input);
jQuery(this).remove();
input.focus();
jQuery('.sortOrderFieldCell input').blur(function() {
var html = "<span class='sortOrderField' data-question-id='3'>" + jQuery(this).val() + "</span>";
jQuery(this).parent().append(html);
jQuery(this).remove();
});
});
この jQuery がテーブル セルで 1 回しか実行されない理由について、何か考えがある人はいますか?