這是不相關的事件冒泡
的第一次點擊,它的內部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