我想将可放置位置保存到数据库中。在每个可放置的 div 中添加了一个文本输入字段,其中 div 名称带有“i_”前缀。
如果我在代码中放置一个警报以显示放置的对象,则 id 在警报框中是正确的,并出现在文本输入字段中。但是当我点击 OK 时,它就消失了。
<div style="float:left; border-style:solid;">
<div class="draggable" class="ui-widget-content" id="1059" style="left:0px; top:0px;" >john doe</div>
<div class="draggable" class="ui-widget-content" id="1113" style="left:0px; top:0px;" >jane doe</div>
<div style="float:left; vertical-align:top" class="droppable ui-widget-header" id="1-2">
<input type='text' id='i_1-2' name='i_1-2' value=''><p>1-2</p></div>
<div style="clear:both";></div> <div style="float:left; vertical-align:top" class="droppable ui-widget-header" id="2-1">
<input type='text' id='i_2-1' name='i_2-1' value=''>
<p>2-1</p></div>
如果调用的函数是 this,则文本框变为黄色,但未设置值
drop: function(event, ui )
{
var f=ui.draggable.attr("id");alert(f);
var s = 'i_'+$(this).attr("id");//alert(s);
$('#'+s).css({'background-color' : 'yellow'});
$('#'+s).val(f);
}
我究竟做错了什么 ?
$( ".droppable" ).droppable
({
activeClass: "ui-state-hover",hoverClass: "ui-state-active",
drop: function( event, ui )
{
var f=ui.draggable.attr("id");//alert(f);
var s = 'i_'+$(this).attr("id");
document.getElementById(s).value=f;//alert(document.getElementById(s).value);
}
} );