обработка 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, время: 22:40. |