不使用jquery自定义内联编辑器

时间:2011-09-03 08:00:59

标签: jquery inline-editing

我写了一个自定义内联编辑器,我有一个问题。如果我在保存按钮后,我无法再次编辑它,我该如何修复它?你可以帮我,让它成倍吗?我的意思是,这项工作只能在页面上使用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>

感谢您的帮助!

2 个答案:

答案 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,就不会执行就地编辑。我仍然很困惑,为什么你首先要检查这个...