我試圖在點擊一個按鈕後追加section
到div
。Jquery:只需點擊一次就追加div一次
我想僅在第一次點擊時附加section
,下面我使用的代碼在每次單擊div
時附加section
。
我應該怎麼辦?
$("#nextractorapply").click(function() {
$("#main").append('<section id="nextractor" class="five"> </section>');
});
我試圖在點擊一個按鈕後追加section
到div
。Jquery:只需點擊一次就追加div一次
我想僅在第一次點擊時附加section
,下面我使用的代碼在每次單擊div
時附加section
。
我應該怎麼辦?
$("#nextractorapply").click(function() {
$("#main").append('<section id="nextractor" class="five"> </section>');
});
你可以使用one()
,只觸發一次
$("#nextractorapply").one('click', function() {
// executes only once
$("#main").append('<section id="nextractor" class="five"> </section>');
});
$("#nextractorapply").on('click', function() {
// executes every time
// do other stuff
});
問題是我將點擊功能內的一些事件,每次點擊按鈕時都必須執行。一旦按鈕被點擊,我只想要附加發生一次,其他事件正常執行。 –
然後只使用兩個事件處理程序,我將編輯 – adeneo
@adeno非常感謝你。我在同一個事件處理函數中使用了'$(「#nextractor」)。remove()',但是假設我有多個附加操作,代碼的行數會增加。你的方法要簡單得多:) –
使用條件,以確定是否它的存在。
$("#nextractorapply").click(function() {
if($('#nextractor').length < 0){
$("#main").append('<section id="nextractor" class="five"> </section>');
}
});
您可以使用某種防止其多次追加的條件。
var counter=0;
$("#nextractorapply").click(function() {
if(counter<=0){
$("#main").append('<section id="nextractor" class="five"> </section>');
counter++;
}
//YOUR OTHER STUFF THAT YOU NEED TO EXECUTE ON EVERY CLICK
});
完美無瑕。 – jane
你可以使用.unbind()
$("#nextractorapply").unbind().click(function() {
$("#main").append('<section id="nextractor" class="five"> </section>');
});
您可以檢查是否該元素有一個默認的類,添加HTML。 例如,您可以將一個類添加到html代碼中,如:class =「first」,並在第一次單擊後移除該類。
A碼是這樣的:
var element = $("#nextractorapply");
if(element.hasClass("first")){
$("#main").append('<section id="nextractor" class="five"> </section>');
element.removeClass("first");
}
然後第一次點擊後,「第一」類將被從你的HTML刪除和jQuery不會追加任何進一步的HTML。
如果這是該按鈕的唯一功能,您是否考慮禁用該按鈕以防止用戶繼續點擊它? – Ellesedil