我正在使用 jeditable 更新页面上的多个项目,但是可以在一个页面上修改许多不同的记录,因此我需要将每条记录的唯一 ID 与更新一起传递。每条记录都包装在自己的 div 中,id 为记录 id。
我已经设法让 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”。我认为问题出在我的 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 来使用一个函数。
我想到了。而不是仅仅试图设置 reci,我需要关注这个函数,这样它就可以工作了。
var recid;
$('.click').focus(function() {
recid = $(this).closest('div').attr('id');
});
但是,由于我有三个触发此事件的类(click、edit_area、editable_select),是否可以将“.click”替换为其他内容,以便它适用于使用它的任何可编辑项?还是我需要复制以上内容?