チェックするイベントが約12あり、すべてのセレクターに同じように(繰り返し)名前が付けられています。このルーチンを短縮するにはどうすればよいですか?
$(document).ready(function() {
$(document).on('click','#del_od1', function() {
$('#change_od1').val('YES');
$('#span_od1').html('(Deleted)');
$('#status_od1').val('DELETED');
});
$(document).on('click','#del_od2', function() {
$('#change_od2').val('YES');
$('#span_od2').html('(Deleted)');
$('#status_od2').val('DELETED');
});
$(document).on('click','#del_od3', function() {
$('#change_od3').val('YES');
$('#span_od3').html('(Deleted)');
$('#status_od3').val('DELETED');
});
});
この質問の名前は適切ではありません。誰かがより正確なタイトルを提案することもできますか?答えを受け入れる前にそれを変更します。
編集:
ajax呼び出しに応答して、テーブル構造全体がエコーアウトされます。テーブルの上部は次のようになります。
$r = '
<table id="DocTable">
<tr>
<th width="170">Document Title</th>
<th width="170">MetShare FN</th>
<th width="50">Action</th>
<th width="50">Delete</th>
</tr>';
呼び出しで要求された情報を含むいくつかの無関係な行が続きます。次に、これが前のビットに追加され、すべてが。としてエコーアウトされecho $r;
ます。
$rest_docs = $aProj['all_project_docs'];
$ocnt = 0;
if ($rest_docs !== ''){
$ocnt = $ocnt + 1;
$aRest_docs = explode('?',$rest_docs);
foreach($aRest_docs as $doc){
$aDoc_parts = explode('|',$doc);
$r = $r . '
<tr>
<td>'.$aDoc_parts[0].'</td>
<td>
<span id="span_od' . $ocnt . '">
<a href="'.$aDoc_parts[1].'" target="blank">
'. $aDoc_parts[1] .'
</a>
</span>
<input type="hidden" id="status_od' . $ocnt . '" name="status_od' . $ocnt . '">
</td>
<td>
<a id="change_od' . $ocnt . '" class="normal" href="#">change</a>
<input type="file" id="if_od' . $ocnt . '" name="if_od' . $ocnt . '" style="display:none">
<input type="text" style="display:none">
</td>
<td>
<a href="#" id="del_od' . $ocnt . '">delete</a>
</td>
</tr>';
}
}
echo $r;