我有一个div,当点击它时,它会切换到contenteditor ......
.attr('contenteditable',true)
如果按下回车键,它将在下面添加一个div。
请参阅示例:http://jsfiddle.net/UserNaN/9yFbL/
但问题是,当添加一个新div时,我无法将这些事件委托click / keydown工作。
如何解决这个问题?
答案 0 :(得分:1)
以下是使用.on()
进行委派活动的简化版本。所有的id都已更改为类,并且已删除了一些不需要的函数。 - http://jsfiddle.net/jayblanchard/9yFbL/5/
$('body').on('click', '.container .content', function(e) {
e.stopPropagation();
$(this).find('.text').removeAttr('contenteditable'); // not sure why this div was editable and then have the attribute moved to its parent
$(this).attr('contenteditable',true).focus();
});
$('body').on('keydown', '.container .content', function(e) {
if (e.keyCode == 13) {
e.preventDefault();
$(this).parent('.container').append('<div class="content"></div>');
$(this).parent('.container').find('.content:last').append('<div class="text">ADDED</div>');
$(this).removeAttr('contenteditable');
$(this).parent().find('.content:last').attr('contenteditable',true).focus();
}
});
如果我能够花更多的时间在这上面,我可能会让它更优雅。