Я пытаюсь скрыть некоторые параметры из выбранного. Используемый раствор таков:Скрыть опцию выбора, не отражающую
this.selectBox.children(".myOption_"+optionValue).wrap("<span></span>");
это.selectBox - объект jQuery указанного выбора.
В Firefox это работает отлично, но в IE8 изменения не отражаются: если нужно взглянуть на выбор, он будет казаться неизменным. Но если пользователь выбирает параметр, значение соответствует удаляемому элементу.
Вот пример:
<option value="val1">Test1</option>
<option value="val2">Test2</option>
<option value="val3">Test3</option>
<option value="val4">Test4</option>
Теперь, когда я выбираю «Test1», функция вызывается и выше код выполняется. С точки зрения пользователя параметры остаются неизменными. НО, если он теперь попытается снова выбрать «Test1», предоставленное значение на самом деле будет «val2», и опция должна быть удалена. Опять же, ничего не происходит, поэтому он снова выбирает «Test1», и значение будет «val3» и так далее.
Чтобы отобразить произошедшие изменения, я должен скрыть, а затем показать выбор.
this.selectBox.children(".myOption_"+optionValue).wrap("<span></span>");
this.selectBox.hide().show();
Код, указанный выше, сделает видимыми изменения (скрыть выбранные параметры).
Что более любопытно, что эта скрипка:
http://fiddle.jshell.net/FAkEK/25/show/
работает как и должно быть на том же браузере.
Я не понимаю, почему это внезапно происходит.
Почему это происходит? Где я должен искать этот вопрос?
вы это делаете внутри успеха: часть вызова Ajax? –
'this.selectBox.children (". MyOption _ "+ optionValue) .hide()', если вы просто хотите скрыть некоторые параметры с помощью класса 'myOption _' + optionValue() '.remove()' для удаления –
@MikeC. Нет, он находится внутри обработчика события «change». Обработчик привязан к jQuery (".."). On (...). – Dragos