这是不相关的事件冒泡
的第一次点击,它的内部HTML是'click me'
然后更改内部HTML到<input type='text' name='right-name' value="click me"'>
第二次用户点击,它将采取这个新的内部HTML和做同样的事情,成为:
<input type='text' name='right-name' value=""<input type='text' name='right-name' value="click me"'>"'>
点击事件绑定到元素本身。所以,即使删除了在选择器中使用的类,该事件仍然存在。
如果你已经委派选择,它会工作,因为事件不绑定到li元素;)
$('.column-header').delegate('li.nottextbox', 'click',function(){
$(this).removeClass('nottextbox');
var text = this.innerHTML;
this.innerHTML = "<input type='text' name='right-name' value='" + text + "'>";
});
见琴:http://jsfiddle.net/46Pqf/9/
尝试用'input'替换'$(this)'。检查它在这里:http://jsfiddle.net/46Pqf/7/ – 2012-03-09 14:40:06