обработка select по умолчанию
есть select, в нем один пункт выбран по умолчанию.
Необходимо выполнить функцию как при первичной загрузке select так и при его изменении. вижу себе это так: HTML:
<div class="del_select" id="country_select">
<label for="country">
<select class="selectBlock" id="country">
<option value="2">Армения</option>
<option value="2">Беларусь</option>
<option value="2">Казахстан</option>
<option value="2">Киргизия</option>
<option selected value="1">Россия</option>
</select></label>
</div>
JS:
$('#country').change();
$('#country').change(function () {
alert('ДА!');
});
не работает. Но, если изменить порядок:
$('#country').change(function () {
alert('ДА!');
});
$('#country').change();
то работает! Чем можно объяснить? P.s. запилил фидл https://jsfiddle.net/8s9now1t/ он вообще не обрабатывает $('#country').change() |
$('#country').change(function () {
alert('ДА!');
}).trigger('change');
|
а почему это правильнее чем моя запись и как быть если необходимо выбрать из другого места?
и тут по прежнему почему-то не работает https://jsfiddle.net/8s9now1t/1/ |
Цитата:
нажмите там кнопку JavaScript => Frameworks & Extensions => jQuery |
Цитата:
Цитата:
Что значит выбрать с другого места? Методом jQ .trigger(event) можно сколь угодно запускать ранее установленный обработчик. |
не совсем так. По документации (http://api.jquery.com/change/):
вызов .change() - работает как триггер вызов .change( обработчик ) - устанавливает обработчик. единственный вопрос, который остался - вызвать обработчик можно только после того как он задан? Т.е.
$('#country').trigger('change'); //тут не должен работать
$('#country').change(function () {
alert('ДА!');
});
$('#country').trigger('change'); // а тут уже сработает
т.е. это ни как обращение к js функции? |
Цитата:
|
А так, сначала:
$('#country').event(...); а затем $('#country').trigger(event); это совсем плохо. Методы JQ возвращают объект полученный по селектору, что позволяет описать множество методов к объекту цепочкой. А то что вы делаете - это найти в DOM объект, выполнить, затем его же опять найти в DOM и выполнить еще что-то. JQ позволяет это описать так: $(selector).method(...).method(...).method(...)... Можно одновременно и кешировать объект в дальнейшем используя его внутри методов. Цитата:
|
| Часовой пояс GMT +3, время: 23:11. |