jquery重命名标记内的内容并确认它

时间:2014-07-25 15:59:47

标签: javascript jquery onclick

  • 我如何只定位一个容器?<​​/ li>
  • 用户应该可以更改名称,然后确认更改。

我的功能很好但是当我有更多的容器重复时,我确认它改变了所有的标签!

请查看演示,您还可以在其中看到changeElementTypefunction

演示: http://jsfiddle.net/26qNq/1/

JS:

$('.replace').on('click', function (){
    $("h2").changeElementType("textarea");
    $(this).hide();
    $(this).next('a').show();

    $('.confirm').on('click', function(){
        var $textarea = $('textarea');
        $(this).hide();
        $(this).prev('a').show();
        $textarea.html($textarea.val()).changeElementType("h2");
    });


    if ($('textarea:visible')){
         $(document).keypress(function(e) {
            if(e.which == 13) {
                alert('You pressed enter!');
                $("textarea").changeElementType("h2");
                $('.replace').css('opacity','1');
            }
        });
    }
});

2 个答案:

答案 0 :(得分:0)

您需要确定相关的h2 / textarea

var container = $(this).closest('.rename')
container.find('h2').changeElementType("textarea");

var container = $(this).closest('.rename')
var $textarea = container.find('textarea');

您还应该嵌套处理程序绑定,因为每次尝试编辑时,都会添加一个新的处理程序


完全更改

$(document).keypress(function (e) {
    if ($('textarea:visible')) {
        if (e.which == 13) {
            alert('You pressed enter!');
            $("textarea").changeElementType("h2");
            $('.replace').css('opacity', '1');
        }
    }
});

$('.replace').on('click', function () {
    var container = $(this).closest('.rename')
    container.find('h2').changeElementType("textarea");
    $(this).hide();
    $(this).next('a').show();
});

$('.confirm').on('click', function () {
    var container = $(this).closest('.rename')
    var $textarea = container.find('textarea');

    $(this).hide();
    $(this).prev('a').show();
    $textarea.html($textarea.val()).changeElementType("h2");
});

http://jsfiddle.net/26qNq/6/

演示

答案 1 :(得分:0)

为每个人添加ID似乎都有效。

我需要做的就是为我们使用的每个元素添加一个数字ID,并将其添加到替换代码中:

var id = $(this).attr('id');
$("h2#" + id).changeElementType("textarea");

演示:http://jsfiddle.net/26qNq/12/