由於you can see here,我的小jQuery腳本運行兩次後不工作,我得到一個奇怪的錯誤。你們中的任何一個碰巧知道發生了什麼/如何解決它?如果你這樣做會很棒!jQuery在執行一次後不工作
謝謝!
康納
由於you can see here,我的小jQuery腳本運行兩次後不工作,我得到一個奇怪的錯誤。你們中的任何一個碰巧知道發生了什麼/如何解決它?如果你這樣做會很棒!jQuery在執行一次後不工作
謝謝!
康納
您只綁定第一個.focus
元素上的按鍵事件。一旦你刪除它,它將不會再收到按鍵事件。
改變這一行
$(".focus").keypress(function(event) {
要
$(".focus").live("keypress",function(event) {
的jQuery .live()
附加一個處理程序的情況下爲當前選擇現在和將來匹配這,所有的元素。
另外,你需要以上低於行
後添加是爲了防止意外的行爲:
if (event.which == '13') {
event.preventDefault(); < stop the enter keypress
你消除對您要添加的初始keypress
事件處理程序的元素。速戰速決是採取了事件處理成一個功能,它重新連接到新添加的元素:
function handleKeyPress(event) {
if (event.which == '13') {
var itemToAdd = $(".focus").val();
if (itemToAdd != ""){
$(this).remove();
$(".active-li").append(itemToAdd);
$("#wrapper ul").append("<li class='active'><input type='text' class='root focus' /></li>");
$(".active-li").removeAttr("class");
$(".active").removeClass("active").addClass("active-li");
$(".focus").keypress(handleKeyPress).focus();
}
}
}
$(".focus").keypress(handleKeyPress);
但我必須說,這看起來像一個非常低效的方式來實現你想要什麼在這裏做...想想一個替代解決方案,您不必刪除您的輸入元素(只需在它之前插入新的<li>
即可)。
謝謝阿泰,我一定會考慮的! – Connor 2011-02-25 05:34:33
注:該錯誤顯示了在2返回 – thenoviceoof 2011-02-25 05:19:31
@thenoviceoof謝謝你 - 只是固定它;) – Connor 2011-02-25 05:23:10