これを実行しようとしていますが、ループは最初のトリガー後に終了します。私を助けるどんなアイデアですか?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 .add ')EQ(I).trigger(' クリック');ループを実行させてください。
数字を入力すると、eq(3)のように数字が1つだけ選択されますが、その数字だけが選択されます。それまでと同じように停止します。
コンソールでエラーなし: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);
}
}
});
@アレクサンダーの長さは、プロテクタです... –
コンソールのエラーをチェックしてください。それはおそらくエラー –
のために壊れています。コンソールエラーです。ループで0から始まり、1からの長さのカウントであるので、.length -1を実行する必要があります。 – noitse