Проблема не в javascript, проблема в том, что вы не сохраняете CSS.
только способ установить ширину - использовать CSS. Даже ваш JS устанавливает CSS (.width
):
Разница между .css(width)
и .width()
том, что последний возвращает блок меньше значение пикселя (например, 400
) в то время как прежние возвращает значение с единицами интактных (для пример, 400px
). Они оба установить CSS «стиль» элемент
Лучший способ либо установить CSS на элементе «контейнера», или убедитесь, что вы сохраняющиеся в CSS всякий раз, когда вы вызываете renderSelect
функцию:
Container
#app/assets/stylesheets/application.css
.container select { width: 50px; }
#app/views...
.container= select_tag "countries", options_for_select(@countries)
Использование контейнера позволит установить CSS на контейнера, устраняя необходимость в CLAS s на самом select
. Хотя это означает добавление контейнера div, он предоставит вам самую автономию.
-
JS
Альтернативой будет изменить функцию renderSelect
взять класс текущего select
& добавить его к новому элементу.
Поскольку я не знаю вашу функцию renderSelect
, я могу предоставить только этот уровень предложения.