1

私は問題があります。次のコードを見てください。

   $(function () {
    $('span').live('click', function () {
        var input = $('<input />', {
            'type': 'text',
                'name': 'aname',
                'value': $(this).html()
        });
        $(this).parent().append(input);
        $(this).remove();
        input.focus();
    });

    $('input').live('blur', function () {
        $(this).parent().append($('<span />').html($(this).val()));
        $(this).remove();
    });
    });

そして今html:

<span>Click aici</span>

したがって、これは明らかに、jquery 1.8.3 まで包括的に機能します。1.8.3 .live() が非推奨になった後、.on() を使用する必要があります。したがって、コードは次のようになります。

$(function () {
    $('span').on('click', function () {
        var input = $('<input />', {
            'type': 'text',
                'name': 'aname',
                'value': $(this).html()
        });
        $(this).parent().append(input);
        $(this).remove();
        input.focus();
    });

    $('input').on('blur', function () {
        $(this).parent().append($('<span />').html($(this).val()));
        $(this).remove();
    });
    });

あるいは単に:

$(function () {
    $('span').click(function () {
        var input = $('<input />', {
            'type': 'text',
                'name': 'aname',
                'value': $(this).html()
        });
        $(this).parent().append(input);
        $(this).remove();
        input.focus();
    });

    $('input').blur(function () {
        $(this).parent().append($('<span />').html($(this).val()));
        $(this).remove();
    });
    });

しかし、これは初めて機能しています。

ここでデモを参照してください : http://jsfiddle.net/hW3vk/

前もって感謝します。

4

2 に答える 2

9
$(function () {
    $(document).on('click', 'span', function () {
        var input = $('<input />', {
            'type': 'text',
                'name': 'unique',
                'value': $(this).html()
        });
        $(this).parent().append(input);
        $(this).remove();
        input.focus();
    });

    $(document).on('blur', 'input', function () {
        $(this).parent().append($('<span />').html($(this).val()));
        $(this).remove();
    });
});

onライブと同じように機能させるには、パラメーターを変更する必要があります

$('(parent) static selector').on('event', 'dynamic selector', function(){...})

代わりに$(document)親セレクターを使用して、移動を絞り込むことができます

また、ここにフィドルがありますhttp://jsfiddle.net/Spokey/hW3vk/5/

于 2013-08-07T13:04:19.830 に答える