0
我有一個點擊事件觸發其他點擊事件,添加一個元素到DOM。 編輯:但是當我第二次點擊它時添加了兩個元素,第三次添加了兩個元素。當我檢查jQuery隊列時,它確認我已將事件添加到每次觸發的隊列中。來自jQuery的清除點擊隊列
我試圖完成的是通過單擊另一個元素將一個單擊事件添加到兩個下拉列表。
$(".step-1 a").on("click", function(e){
e.preventDefault();
var userValue = $(this).attr('id');
$(".template-image").removeClass("selected");
$(this).children(":first").addClass("selected");
$("#page_template option ").each(function(){
var t = $(this);
var cValue = t.attr("value");
if(t.attr("selected") === "selected"){
t.removeAttr("selected");
}
if(t.attr("value") === userValue){
t.prop("selected", "selected");
$('#page_template').trigger('change');
var template = t.attr("value");
switch (template)
{
case "default":
$(".step-2").slideDown("fast");
$(".step-2").addClass("show");
break;
default:
$(".step-2").removeClass("show");
$(".step-2").slideUp("fast");
break;
}
}
});
});
$('.step-2 img').on("click", function(e){
e.preventDefault();
var userinput = $(this).attr('id');
$('.flexible-footer .acf-fc-add').each(function(){
var text = $(this).text();
if(text === "Add columns"){
$(this).trigger('click');
$('.flexible-footer .acf-fc-popup ul li a').each(function(){
var column = $(this).attr('data-layout');
if (column === userinput) {
$(this).trigger('click');
$(this).finish();
console.log($(this).queue());
}
});
}
});
我試過這個,它似乎停止再次發生點擊事件,如果我添加.off()。我還注意到,第一次點擊激發了一次點擊事件,第二次點擊將激發兩次點擊事件,並且它將保持兩次點擊以便點擊。 –
如果你想在第一次運行時清除事件隊列,也許你可以嘗試http://api.jquery.com/clearQueue/? –
感謝您的提示。我嘗試過,但沒有得到它的工作,但我會再試一次,看看我能否找到一種方法使其工作。 –