2011-08-11 37 views

回答

0

你的代码的主要问题是,你不重新绑定你的点击处理程序到任何特定的功能(它似乎并没有说在文档中的任何地方,它应该反弹到先前处理程序如果您没有处理程序调用bind)。所以,你必须像这样改变你的代码:

var words = $("p:first").text().split(" "); 
var text = words.join("</span> <span class='la'>"); 
$("p:first").html("<span class='la'>" + text + "</span>"); 
function spanclick(){ 
    $(this).html('<input class="mm" value="' + $(this).text() + '"/>'); 
    $(this).unbind("click"); 
} 
$("span.la").click(spanclick); 
$("span.la").unbind("click"); 
$("#hmm").delegate(".mm", "blur", function() { 
    $(this).replaceWith("<span>" + $(this).val() + "</span>"); 
    $(this).bind("click"); 
    $("#get").html($("p").text()); 
}); 
$("#ed1").click(function() { 
    $("#get").html("Editing 1"); 
    console.log('aaa'); 
    $("span.la").bind("click", spanclick); 
}); 
$("#ed2").click(function() { 
    $("#get").html("Editing 2"); 
}); 

但这并非全部。显然,你的CSS也有问题,因为ed1 div没有捕获点击事件。当我删除所有的CSS时,它是固定的。

+0

只有当你在/ show/ – kritya

+1

中运行时,ed1才会捕获点击事件啊不行:D:D – kritya

+0

适用于我:http://jsfiddle.net/4H94J/4/ - 小提琴本身 – 2011-08-11 10:19:07