setTimeout(function(){
$(".btn-danger:eq(0)").click();
setTimeout(function(){
$(".multiselect:eq(0)").click().first();
setTimeout(function(){
$('.checkbox input[type=checkbox]').prop('checked', true).click();
}, 2000);
setTimeout(function(){
$(".multiselect:eq(1)").click().next();
$('.checkbox input[type=checkbox]').prop('checked', true).click();
}, 2000);
setTimeout(function(){
$(".multiselect:eq(2)").click().next();
$('.checkbox input[type=checkbox]').prop('checked', true).click();
}, 2000);
}, 5000);
});
Существует множество радиокнопок, текстовых полей и несколько выпадающих списков с флажком. Все в порядке, кроме нескольких выпадающих списков с флажками.
Этот код выбирает все параметры следующим образом:
[выпадающий список][1]
[1]: https://i.stack.imgur.com/SuCXk.jpg
Здесь есть еще 2 выпадающих списка. Код выберите все варианты по порядку. Когда первый в порядке, второй запускается. Но первые значения становятся невыбранными. Когда третий запускается, второй тоже становится невыбранным. Только последний работает корректно.
Как я могу достичь своей цели?
@ Андреас, все работает нормально. Код выбирает элементы по порядку. Но тогда они не выбраны. Я пробовал сначала setTimeout(..., 1000)
второй 2000, третий 3000. Когда я очищаю тайм-ауты, они не работают нормально. работает только последний. Остальные ничего не делают. Как я могу сделать это отдельно за один раз.
Есть мое решение. Речь идет о работе события click в javascript. Если мы хотим запустить его дважды, нам нужно создать такой цикл:
//getting the element with the classname.(classname is important)
var list = document.getElementsByClassName("input-small form-control");
setTimeout(function(){
$(".btn-danger:eq(0)").click();
setTimeout(function(){
$('.panel-body input[type=radio]:nth-child(0)').prop('checked', true);
for (var i = 0; i < list.length; i++) {
list[i].setAttribute("value", "skip");
}
$('.checkbox input[type=checkbox]').each(function () {
$(this).prop('selected', true).attr('checked', 'checked').click();
$("li").addClass("active");
});
}, 2000);
setTimeout(function(){
$(".panel-footer > a").click();
}, 7500);
}, 5000);
setTimeout()
не блокируется. Обратные вызовы «внутренних»setTimeout(..., 2000)
вызовов выполняются одновременно.