Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   multiselect - отстаем на событие (https://javascript.ru/forum/jquery/65454-multiselect-otstaem-na-sobytie.html)

cukobly 20.10.2016 11:01

multiselect - отстаем на событие
 
Всем бобра, форумчане!
Итак, суть. Есть некий мултиселект, с чекбоксами
...
<div class="ms-parent multiselects7" style="width: 92%; display: block;">
    <button type="button" class="ms-choice">
        <span class=""> Ис</span>
        <div class="open"></div>
    </button>
    <div class="ms-drop bottom" style="display: block;">
        <ul style="max-height: 250px;">
            <li class="ms-select-all"><label><input type="checkbox" name="selectAll"> [Выбрать все]</label></li>
            <li><label><input type="checkbox" name="selectItem" value="1"> Планируемые</label></li>
            <li class="selected"><label><input type="checkbox" name="selectItem" checked="checked" value="2"> Исполняемые</label></li>
            <li><label><input type="checkbox" name="selectItem" value="4"> Выполненные</label></li>
            <li><label><input type="checkbox" name="selectItem" value="8"> Отменные</label></li>
            <li><label><input type="checkbox" name="selectItem" value="16"> Просроченные</label></li>
            <li><label><input type="checkbox" name="selectItem" value="32"> Архивные</label></li>
            <li class="ms-no-results" style="display: none;">No matches found</li>
        </ul>
    </div>
</div>
...

есть обработчик для него
$(function () {
...
$('.filtr-main').on('change', '.multiselects7 .ms-drop label', function() {			
			var val = $('#multiselects7').val();
			var vals = '';
			if(val) vals = val.join(',');
			$.post('/dashboards/filtr_select/', { filtr: vals, flag: 'TaskTypes' }, function(data) {
                alert(val + ' -------------- ' + vals);
			});
	});
...
});

так вот, в хроме все работает как надо, алерты отображают значения выбранных элементов. А вот сафари (на маке) и любий ослик IE 11, выдают значения с опозданием на одно событие. Т.е. я выбираю какой то пункт, а получаю значения прошлого выбора. Кто сталкивался с таким? Куда копать? =(

ЗЫ: код не мой, разбираюсь уже неделю, но подобных ошибок еще ни разу не встречал.

рони 20.10.2016 11:11

cukobly,
копать в сторону плагина который кастомизирует ваш селект и использовать его api для 'change'.


Часовой пояс GMT +3, время: 22:27.