ページ上の複数のアイテムを更新するために jeditable を使用していますが、1 つのページで変更できるさまざまなレコードが多数あるため、各レコードの一意の ID を更新と共に渡す必要があります。各レコードは、レコード ID の ID を持つ独自の div にラップされます。
Jquery を動作させることができましたが、最初の Div の ID を取得し、それを含む div を取得しません。
ここに単純化されたhtmlがあります
<div id="outer">
<div id="left">
<div id="3">
<p><strong>Web ID: </strong>3</p>
<p><strong>Record Date type (008): </strong><span class="editable_select" id="0085" style="display: inline">eng</span></p>
<p><strong>Collection ID (035): </strong>(WlAbNL)1002</p>
<p><strong>Date Created (260): </strong><span class="click" style="display: inline" id="260">1910 -</span></p>
</div>
</div>
</div>
そして、これが機能する Jquery ですが、「3」ではなく「Outer」を選択します。問題は私の var rec 定義にあると思いますか?
<script id="source" language="javascript" type="text/javascript">
$(document).ready(function() {
var recid = $('.click').closest('div').attr('id');
$('.click').editable('ajax/save.php', {
cancel : 'Cancel',
submit : 'OK',
indicator : 'Saving...',
style : "inherit",
tooltip : 'Click to change...',
submitdata : function() {
return {rid : recid };
}
});
$('.edit_area').editable('ajax/save.php', {
submitdata : {record: "<?php echo $rec_id; ?>"},
type : 'textarea',
cancel : 'Cancel',
submit : 'OK',
indicator : '<img src="img/indicator.gif">',
tooltip : 'Click to change...'
});
$(".editable_select").editable('ajax_save.php', {
submitdata : {record: "<?php echo $rec_id; ?>"},
indicator : '<img src="img/indicator.gif">',
data : "{'Eng':'Eng','Cym':'Cym'}",
type : "select",
submit : "OK",
style : "inherit",
});
});
アップデート -
以下は正しい ID を取得するようになりました。関数を使用するように VAR を変更する必要がありました。
私はそれを考え出した。recid を設定しようとするだけでなく、機能に焦点を当てる必要がありました。
var recid;
$('.click').focus(function() {
recid = $(this).closest('div').attr('id');
});
ただし、これをトリガーする 3 つのクラス (click、edit_area、editable_select) があるため、'.click' を別のものに置き換えることは可能で、それを使用する編集可能オブジェクトで機能しますか? または、上記を複製する必要がありますか?