我有以下代码将简单文本更改为textarea字段:
$('.field').live({
mouseenter:
function()
{
title='<?php echo $user_title; ?>';
old_value=$(this).text();
item_id=$(this).attr('id');
item=$(this).parent('td');
height=event.target.offsetHeight;
width=event.target.parentNode.offsetWidth;
new_value=(old_value=='Not translated') ? '' : old_value;
$(this).empty();
var field=(title=='Login') ? "<textarea style='vertical-align: middle; font-family: Helvetica; font-size: 12pt; width: 212px;' id='new_value' name='term'>" + new_value + "</textarea>"
: "<textarea style='vertical-align: middle; font-family: Helvetica; font-size: 12pt; width: 212px;' id='new_value' name='term'>" + new_value + "</textarea><div id='save_button' class='btn btn-primary' href='#'>>></div>";
$(this).html(field);
$("#new_value").height(height);
button_id=item_id.split('/')[0];
button_id=button_id.replace(/([!"#$%&'()*+,./:;<=>?@\[\\\]^`{|}~])/g, "\\$1");
$("#"+button_id).show();
$("#new_value").click(function()
{
if (title=='Login')
window.location.replace('<?php echo $fb_url?>');
});
},
mouseleave:
function()
{
$(this).empty();
$(this).html(old_value);
$("#"+button_id).hide();
alert($(this).html());
}
}
);
文本的div块:
echo "<td width='250'><div class='field' id='".$record['translate']['label_value']."/".$record['language_id']."'>".
strip_tags($record['translate']['coalesce(loc.language_value)'])."</div>";
它工作正常,但我需要添加额外的div块:
echo "<td width='250'><div class='field' id='".$record['translate']['label_value']."/".$record['language_id']."'><div style='width: 200px;'>".
strip_tags($record['translate']['coalesce(loc.language_value)'])."</div></div>";
执行此操作后,我的代码无效!它将文本更改为textarea字段,但在“mouseleave”事件中,它不起作用$(this).empty()
构造!请告诉我,我该如何解决?
答案 0 :(得分:0)
尝试关闭代码
echo "<td width='250'><div class='field' id='".$record['translate']['label_value']."/".$record['language_id']."'><div style='width: 200px;'>".strip_tags($record['translate']['coalesce(loc.language_value)'])."</div></div></td>";
我在最后添加了
答案 1 :(得分:0)
请确保您的鼠标输入事件正在解雇。如果不是,问题可能是因为浏览器周围没有足够的空间/区域来检测元素上的mouseleave或mosueenter事件。
尝试为字段类添加一些填充或边距,如
.field
{
margin:10px;
}
或
.field
{
padding:10px;
}
您也可以通过添加背景颜色来测试元素区域。然后尝试mouseleave。如果它能解决问题并尝试添加填充或边距。
答案 2 :(得分:0)
你必须在关闭DIV标签后关闭TD标签。
echo "<td width='250'><div class='field' id='".$record['translate']['label_value']."/".$record['language_id']."'>".
strip_tags($record['translate']['coalesce(loc.language_value)'])."</div>";
您忘记关闭TD标记以及id属性的单引号。
echo "<td width='250'><div class='field' id='".$record['translate']['label_value']."/".$record['language_id']."'>".strip_tags($record['translate']['coalesce(loc.language_value)'])."'</div></td>";
它应该像这样工作。确保所有的html标签和属性都有效。