2011-02-08 62 views
3

因此,這裏是我使用的代碼:jQuery的:追加一次並停止(在舊版本的工作)

$(function(){ 
    $('<div id="info" style="width:auto; height:auto;"/>').load('test.php?var='+d+' #se', function() { 
     $('#main').append(this); 
    }); 
}); 
} 

現在,當我觸發功能(帶有一個輸入框KEYUP)股利裝在每個鍵入事件中都重複地重複。

我正在使用jQuery 1.5 - 在舊版本中,即1.2.6,第一次沒有附加div,它工作正常(bug?)。

如何防止div被反覆追加? (不幸的是,禁用「觸發器」不是一種選擇。)我也嘗試過appendTo,這幾乎是同樣的問題。

有人請幫助我!非常感謝

+0

只需在條件檢查中包裝加載調用以查看`div#info`是否已經存在。 – 2011-02-08 23:31:06

+0

你可以添加數據到你的主div來檢查div是否已經加載,並在這種情況下什麼都不做。 – Maher4Ever 2011-02-08 23:50:30

回答

0

使用

$(function(){ 
    if($("#info").length==0) 
    { 
     $('<div id="info" style="width:auto; height:auto;"/>').load('test.php?var='+d+' #se', function() { 
     $('#main').append(this); 
     }); 
    } 
}); 
} 

假設 「#info」 動態添加。

2

聽起來像是你可以使用.one綁定您的KEYUP處理程序:

$('whatever').one('keyup', function() { 
    $('<div id="info" style="width:auto; height:auto;"/>').load('test.php?var='+d+' #se', function() { 
     $('#main').append(this); 
    }); 
}); 

.one功能的行爲就像.bind除了它它執行一次後解除綁定本身。