2014-10-07 97 views
0

我有一个包含另一个div嵌套错误联编辑代码

<div class="draggable"> 
    <div class="edit_text">Hello</div> 
</div> 

现在我有哪里我试图编辑edit_text div的文本代码DIV HTML

这里是我的代码

if (key == 'edit') { 
    alert('hii'); 
    //$(this).find('.edit_text').remove(); 
    var content = $(this).find('.edit_text').text(); 

    var width = $(this).width() - 1; 
    var height = $(this).height() - 4; 

    var $editbox = $("<input type='text'" + 
     "style='width:" + width + ";" + 
     "height:" + height + ";" + 
     "border:none" + 
     "' value='" + content + "' />"); 


    $(this).find('.edit_text').empty(); 
    $(this).find('.edit_text').prepend($editbox); 
    $editbox.focus(); 
    $editbox.select(); 


    $($editbox).bind("blur", 

    function() { 
     $(this).find('.edit_text').html($($editbox).val()); 
     alert($($editbox).val()); 
     $($editbox).remove() 
    }); 
} 

问题是,在本节

$(this).find('.edit_text').html($($editbox).val()); 
alert($($editbox).val()); 
$($editbox).remove() 

当我点击的div以外,该警报显示$editbox.val()

但一旦编辑框被删除,的innder DIV即HTML的edit_text有所

错过了什么我做错了什么?

回答

1

$ editbox位于.edit_text div内。您的代码行:

$(this).find('.edit_text').html($($editbox).val()); 

正试图在DOM中向下看;其实,你需要仰视:

$(this).closest('.edit_text').html($($editbox).val()); 

这也应采取移除$编辑框的照顾,所以你大概可以删除此行:

$($editbox).remove()