[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Задержка на выполнение кода
elena180607
Здравствуйте, есть нехитрый код (ниже), который предназначет, чтобы сбрасывать указанные значения в полях <select></select> при нажатии на кнопку. Используется скрипт select2.js в который этот код добавлен.

Знаю, задача странная, но можно ли к этому коду как-то добавить setTimeout, здержку на выполнение сброса в милисекундах?


$(function(){
$("#pushbutton").click(function(){
$("#select1, #select2").select2('val', 'All');
});
});

Kusss
var timer;
$("#pushbutton").click(function(){
clearTimeout(timer);
timer = setTimeout(function(){
$("#select1, #select2").select2('val', 'All');
}, 200);

});
elena180607
Цитата
200);

Kusss, благодарю за предложенное решение, но сброс почему-то происходит сразу же. Эксперементировала со значениями 1500-50005-15000 милисекунд вместо 200.
Valick
elena180607, очень страшно, но жутко интересно для чего понадобилось подобное извращение?


_____________
Стимулятор ~yoomoney - 41001303250491
elena180607
Цитата
очень страшно, но жутко интересно для чего понадобилось подобное извращение
Вы правы, извращение. Это для тех, кто уже перепробовал все tongue.gif
Valick
на всякий случай https://tproger.ru/explain/xyproblem/

_____________
Стимулятор ~yoomoney - 41001303250491
Michael
Я сделал установку значения по документации, вот такой код работает:

<link href="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/css/select2.min.css" rel="stylesheet" />
<script
src="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js"></script>

<select
class="js-example-basic-single" name="state">
<option
value="All">All</option>
<option
value="AL">Alabama</option>

<option
value="WY">Wyoming</option>
</select>
<button>
Очистить</button>


$(document).ready(function() {
let timer;
$('.js-example-basic-single').select2();
$('button').click(function(){
clearTimeout(timer);
timer = setTimeout(function(){
$(".js-example-basic-single").val('All');
$(".js-example-basic-single").trigger('change');
}, 2000);
});
});


Demo

_____________
There never was a struggle in the soul of a good man that was not hard
elena180607
Цитата
var timer;
$("#pushbutton").click(function(){
clearTimeout(timer);
timer = setTimeout(function(){
  $("#select1, #select2").select2('val', 'All');
}, 200);

});


Kusss ваш код работает, не знаю, почему не сработало сразу, спасибо большое за помощь!
elena180607
Цитата
Я сделал установку значения по документации, вот такой код работает

Michael отдельная благодарность за ссылку на jsfiddle, поэкспериментировала со значениями, все работает как часы, огромное спасибо за помощь!
Invis1ble
Цитата (Valick @ 16.03.2021 - 17:11)
elena180607, очень страшно, но жутко интересно для чего понадобилось подобное извращение?

Обычно такие огороды начинают городить, когда не умеют работать с событиями.

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

Valick
Invis1ble, ну я сделал всё, что мог. Не хочет - как хочет.


_____________
Стимулятор ~yoomoney - 41001303250491
curious
Это плохая практика заставлять юзера ждать
Valick абсолютно прав, это извращение
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.