2012-10-09 60 views
0

我正在表格底部的div框中添加表單的當前列表。 當有人點擊添加按鈕時,我正在追加div框。如何在jquery中添加div元素(如果不存在)

但是,當我點擊添加按鈕多次,然後多個div框被追加。

有沒有什麼辦法,無論我點擊按鈕多少次,只有一個實例被附加到div框。

這是我的代碼

$var = $(this).parent().parent(); 
$var.append($('.jq_div')[0].outerHTML); 

回答

0

一個簡單的解決辦法是具有布爾標誌,一旦你點擊按鈕,你可以切換。另外,實際上有一個提供這個確切功能的jQuery函數。

這就是所謂的one() -

附加的處理程序爲元素的事件。該處理程序每​​個元素最多執行一次 。

所以您的代碼會是這個樣子 -

$("#someTrigger").one('click', function(){ 
    $var = $(this).parent().parent(); 
    $var.append($('.jq_div')[0].outerHTML); 
}); 

布爾方法也很簡單 -

var wasClicked = false; 

$("#someTrigger").on('click', function(){ 
    if (wasClicked == false){ 
    // append your form 
    wasClicked = true; 
    } 
}); 

參考 -

+1

這個布爾方法在事件上效果最好 – user26

4

連接使用.one()您的收聽。

$("button").one('click', function(){ 
    // Your code 
}); 

瞭解更多:http://api.jquery.com/one

這是你使用jQuery 1.7+的假設下

+0

如果我換一個,它可以動態地連接到新的DOM元素 – user26

+0

@ user1721949 - 是的。但是如果你在提供的鏈接上閱讀文檔,你會知道這一點;-) – ahren

+0

我試過這個功能,但它不能正常工作。首先它附加div。下一次它不會追加div,但會將用戶鏈接到下一頁的href鏈接,而不會執行任何操作 – user26

相關問題