Вот что происходит:
$('div.select-normal div.option-'+value+'').click(function() {
option.prop("selected", "selected");
$('div.select-normal div.option').removeClass('selected');
$(this).toggleClass('selected');
});
Когда выше код выполняется для вашей нормальной выберите много, правильно применяется класс CSS. Тем не менее, в дальнейшем у вас есть этот код для модального выбора много:
$('div.option').click(function() {
var value = $(this).attr('id');
var option = $('option[value=' + value + ']');
var optiontext = $(this).text();
option.prop("selected", !option.prop("selected"));
$(this).toggleClass('selected'); // HERE IS THE ERROR
if ($(this).hasClass('selected')) {
$('ul.multiselect-dropdown-options')
.append('<li id="' + value
+ '" class="dropdown-option drop-down-option-'
+ value + '">' + optiontext
+ '<a class="remove-option">x</a></li>');
} else {
$('.drop-down-option-' + value).fadeOut().remove();
}
});
Так, нажав на нормальный выбор многих также вызывает $ («div.option») нажмите кнопку(), он выполняет toggleClass и удаление. «выбранный» класс, который был добавлен ранее.
Кстати, очень сложно отладить вашу скрипку, если вы работаете над ней. Когда вы отправляете скрипту в SO, отправьте URL-адрес вилки, который вы не будете редактировать.
Update
Дайте человеку рыбу, и он будет сыт один день ... научить человека ловить рыбу, и он будет сыт всю жизнь. Несмотря на то, что ваша скрипка менялась, я отлаживал ее с помощью инструментов Google Chrome Developer. Просто зайдите на свою скрипку, щелкните правой кнопкой мыши и выберите «Осмотреть элемент». Перейдите на вкладку «Сценарии» и выберите сценарий «показать /» из раскрывающегося списка. Затем вы можете щелкнуть по номерам строк, чтобы установить точки останова в javascript. Вернитесь в Chrome, сделайте что-нибудь в панели результатов, и Chrome должен попасть в точку останова. Затем вы можете выполнить действия и увидеть, как строка DOM влияет на ваш сценарий.
Вам нужно будет установить контрольные точки внутри ваших функций() и click(), так как Chrome не имеет очень хороших функциональных возможностей (он входит в исходный код jquery). Кроме того, наличие 2-мониторного дисплея помогает LOT здесь, так что вы можете пройти через отладчик на одном мониторе, просматривая результат FOM Fiddle на другом мониторе.
Вот и все. Я просто смотрел на него так долго, что не мог его разглядеть. Спасибо за подсказку о моей скрипке, а также - не означало никакого путаницы с моим редактированием. – Zumwalt
Хорошо. Ознакомьтесь с моим обновлением для подсказки по упрощенной отладке javascript со скрипкой. – danludwig