Цитата:
|
Цитата:
события асинхронные. $('select').change( function() { $('#controls').html(тут вставляем нужное, получая значение выбранной опции как this.value, напрягать JQ по таким пустякам не стоит.) |
Цитата:
<div id="controls">***</div> <select id="mapping_select_type"> <option> Вид карты </ option> <option value="HYBRID"> • гибридная карта </option> <option value="ROADMAP"> • дорожная карта </option> <option value="SATELLITE"> • спутниковая карта </option> <option value="TERRAIN"> • физическая карта </option> </select> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script> <script> $(function() { var mapping_page = 'mapping'; var mapping_divs = '#' + mapping_page; var mapping_name = mapping_divs + '_'; var mapping_arr = {}; $(mapping_name + 'select_type').change( function() { mapping_arr = {'mtype':''}; $(mapping_name + 'select_type option:selected').each(function() { mapping_arr.mtype = $(this).val(); }); return mapping_arr; }).change(); $('#controls').html('mapping_arr: ' + JSON.stringify(mapping_arr)); }) </script> |
$(...).change( function() {
mapping_arr.mtype = this.value; имя_функции_какого_то_основ ного_скрипта(); }) |
Цитата:
<div id="controls">***</div> <select id="mapping_select_type"> <option> Вид карты </ option> <option value="HYBRID"> • гибридная карта </option> <option value="ROADMAP"> • дорожная карта </option> <option value="SATELLITE"> • спутниковая карта </option> <option value="TERRAIN"> • физическая карта </option> </select> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script> <script> $(function() { var mapping_page = 'mapping'; var mapping_divs = '#' + mapping_page; var mapping_name = mapping_divs + '_'; var map_arr = {}; $(mapping_name + 'select_type').change( function() { map_arr = {'mtype':''}; $(mapping_name + 'select_type option:selected').each(function() { map_arr = $(this).val(); }); SelectMap (map_arr); }).change(); function SelectMap(MapArr) { // SelectMaps (MapArr); var mapping_arr = {}; mapping_arr.mtype = MapArr; $('#controls').html('mapping_arr: ' + JSON.stringify(mapping_arr)); } }) </script> |
...похоже что для наполнения массива необходимыми значениями, а их у меня по условиям работы скрипта может быть несколько, необходимо каждое значение передать в эту функцию и там уже причесать к результирующему выводу.
правильно? jsfiddle.net... |
Цитата:
|
Цитата:
|
Цитата:
$(mapping_name + 'select_type').change( function() { ..... $(mapping_name + 'select_type option:selected').each(function() { это расточительство, когда в обработчике список уже доступен - this. Значением списка при этом является значение его выбранной опции, то есть this.value - $(this).val() при этом это еще одно расточительство. В списке с единственным выбором выбранная опция может быть только одна. Попробуйте исходя из этой аксиомы объяснить, что тут происходит? $(mapping_name + 'select_type option:selected').each(function() { |
Цитата:
добавив еще один список и его обработчик в конечную функцию приходит только крайний вариант выбора, а вот как заставить накапливать все значения, пока не дотумкал... |
Часовой пояс GMT +3, время: 23:37. |