我的功能很好但是当我有更多的容器重复时,我确认它改变了所有的标签!
请查看演示,您还可以在其中看到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');
}
});
}
});
答案 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");
});
演示
答案 1 :(得分:0)
为每个人添加ID似乎都有效。
我需要做的就是为我们使用的每个元素添加一个数字ID,并将其添加到替换代码中:
var id = $(this).attr('id');
$("h2#" + id).changeElementType("textarea");