【问题标题】:Not working custom inline editor with jquery无法使用 jquery 自定义内联编辑器
【发布时间】:2011-09-03 08:00:58
【问题描述】:

我编写了一个自定义内联编辑器,但我遇到了问题。如果我点击保存按钮之后我无法再次编辑它,我该如何修复它以使其正常工作?你能帮我把它变成多个吗?我的意思是,这仅适用于页面上的 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>

感谢您的帮助!

【问题讨论】:

    标签: jquery inline-editing


    【解决方案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

    【讨论】:

      【解决方案2】:

      请删除if(fut==true) 检查,它应该可以正常工作...发生的是,一旦fut 变量设置为true,就地编辑将永远不会执行。我仍然对您为什么首先要进行检查感到困惑...

      【讨论】:

        猜你喜欢
        • 2017-06-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-12-07
        相关资源
        最近更新 更多