2017-06-02 155 views
0

我試圖做到這一點,但循環在第一次觸發後結束。任何想法來幫助我?jQuery觸發點擊循環後停止第一個

$(document).on('click', '#configurator .myalbumimgs .autofill', function(e) { 

    e.preventDefault(); 

    var nb_of_images = $('#grid div.configimg').length; 

    for (i = 0; i < nb_of_images; i++) { 

     alert(i); 

     $('.imgpicker .photo .add').eq(i).trigger('click'); 
    } 

}); 

編輯1:一切工作正常,如果我刪除$( 'imgpicker .photo。新增 ')等式(1).trigger(' 點擊');並讓循環運行。

如果我把一個數字,像eq(3)選擇正確的一個,但只有那一個。然後它像以前一樣停下來。

在控制檯中沒有錯誤:S

編輯2:發現了正確的解決方案,我的錯誤與錯誤的元素上.EQ。感謝所有的建議!正確的代碼:

$(document).on('click', '#configurator .myalbumimgs .autofill', function(e) { 

    e.preventDefault(); 

    if ($(this).not('.done')) { 

     var multiselector_nbimages = $('#grid').attr('data-nbimages'); 

     var nb_images_selected = parseInt($('#grid div.configimg').not('.temp').length); 
     var max_nb_images = parseInt(multiselector_nbimages); 

     if (nb_images_selected < max_nb_images) { 

      var album_images = $(this).parent().parent().children('.imgpicker').children('.photo'); 
      var nb_of_grid_images = $('#grid div.configimg.temp').length; 

      for (i = 0; i < nb_of_grid_images; i++) { 

       album_images.eq(i).children('.add').not('.selected').trigger('click');; 
      } 

      $(this).addClass('done'); 

     } else { 

      alert(lang_valid_max_nb_of_photos); 
     } 

    } 

}); 
+4

@Alexander長度屬性... –

+2

檢查控制檯是否有錯誤。它可能會因爲錯誤而中斷 –

+0

任何控制檯錯誤,並且您應該執行.length -1,因爲您從循環中的0開始,並且長度從1開始計數 – noitse

回答

-2

jquery已經在每種方法中構建。

$('#configurator .albumbtn.autofill').on('click', function(e) { 

e.preventDefault(); 

//Iterate through every configimg 
$('#grid div.configimg').each(function(el) { 
// $(this) is current element in the list 
    if($(this).hasClass('someclass')) { $(this).trigger('click') } 
}) 

});

-1

嘗試包木窗循環體在這樣的閉合:

for (var i = 0; i < nb_of_images; i++) { 
    (function(i) { 
    alert(i); 
    $('.imgpicker .photo .add').eq(i).trigger('click'); 
    })(i); 
} 

也許第「i」變量以某種方式由當量功能操縱。

+0

@亞歷山大,我不明白你的意思。 –

+0

@Alexander,它爲每次迭代創建一個新的執行上下文,並像寫入索引變量一樣編寫。 –

+0

在這種情況下,它沒有任何意義。 'i'。imgpicker .photo .add')。eq(i).trigger('click');'當'i'值爲真時,在循環過程中觸發第i個元素上的click事件。沒有必要固定'我'的價值。 – Alexander