我写了一个自定义内联编辑器,我有一个问题。如果我在保存按钮后,我无法再次编辑它,我该如何修复它?你可以帮我,让它成倍吗?我的意思是,这项工作只能在页面上使用1个div,而不是超过1个。 这是代码:
$(function()
{
var fut = false;
$('.jq_edit').live('click', function() {
if (fut==true){ } else {
var tartalom = $(this).html();
$(this).html("<input type='text' value='"+tartalom+"'><input type='button' value='Save' class='save'>");
fut=true;
}
});
$('.save').live('click', function() {
var mtartalom=$(this).prev().attr('value');
$('.jq_edit').html(mtartalom);
$('.jq_edit').append(" <span id='ok'><img src='accept.png'> Success</span>");
$('#ok').delay(1500).fadeOut(500);
});
});
和html:
<body>
<div class="jq_edit">adsadasd</div>
</body>
感谢您的帮助!
答案 0 :(得分:1)
为了使它变得多倍,你必须改变很多,这是我的解决方案:
$(function() {
$('.jq_edit').live('click', function() {
// if success message is visible, remove it
$(this).find('.ok').remove();
// if already in input mode, return
if ($(this).hasClass('inputMode')) {
return true;
}
// change to input mode
var tartalom = $(this).html();
$(this)
.empty()
.append("<input type='text' value='" + tartalom + "'>")
.append("<input type='button' value='Save' class='save'>")
.addClass('inputMode');
});
$('.save').live('click', function() {
// create success message
var jSuccess = $("<span class='ok'> <img src='accept.png' /> Success</span>");
// deactivate input mode
$(this).parent()
.html($(this).prev().val())
.append(jSuccess)
.removeClass('inputMode');
// animate success message
$(jSuccess).delay(1500).fadeOut(500, function() {
$(this).remove();
});
// prevent jq_edit click handler
return false;
});
});
另见jsfiddle。
答案 1 :(得分:0)
请删除if(fut==true)
检查,它应该可以正常工作......发生的事情是,一旦fut
变量设置为true,就不会执行就地编辑。我仍然很困惑,为什么你首先要检查这个...