我写了一个自定义内联编辑器,我有一个问题。如果我点击保存按钮之后,我不能再编辑它,我怎么能修复它的工作?你能帮我把它变成倍数吗?我的意思是,这只适用于一个页面上的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>
谢谢你的帮助!
要使它成为倍数,你必须改变很多,以下是我的解决方案:
$(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;
});
});
请删除if(fut==true)
检查,它应该工作正常…实际情况是,一旦fut
变量被设置为true,就地编辑将永远不会执行。我还是不明白你为什么要开那张支票……