У меня есть код, который удаляет элемент опции из тега выбора нескольких (<select multiple></select>
) при щелчке по опции.Код работает + - вот так.
var option = new Option("sometext","someval");
$(option).click( function(){
selectBox.remove(option);
return false;
}
);
$(selectBox).append(option);
Он очень хорошо работает на всех движках, которые я помню (gecko, presto, webkit ...), кроме IE.
Согласно моим исследованиямIE не поддерживает добавление событий в теги параметров, поэтому я добавил событие в тег выбора.
$(selectBox).click( function(event){
if (option === selectBox.options[selectBox.selectedIndex]) {
event.preventDefault();
event.stopPropagation();
selectBox.remove(option);
return false;
}
event.preventDefault();
return true;
}
);
Где находится: if (option === selectBox.options[selectBox.selectedIndex]) {
Я уже пробовал: if ($(option).is(':selected')) {
Didn 'либо не работает.
Что происходит: когда я щелкаю опцию, все связанные функции активируются, и после удаления элемента могут быть активированы функции.
Использование event.stopPropagation();
(в любом случае распространение продолжается)не делать то, что я хочу, как все другие события также называются.Изменение события с щелчка на изменение не решает проблему, поскольку при изменении выбранного параметра он удаляется, а затем выбранный параметр становится другим, в результате чего событие вызывается снова, и, в конце концов, все элементы в выборе удаляются..