2016-02-12 3 views

ответ

-1

Решение состоит в том, чтобы JavaScript снова

// javascript 
$(function() { 
    renderSelect("select"); 
    $("div#s2id_countries").width(300); 
}); 

# HAML example (Rails) 
= select_tag "countries", options_for_select(@countries), class: 'some-ignored-css-class' 

ааа, Javascript, причина и решение, все жизненные проблемы

(любые улучшения?)

1

Проблема не в 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, я могу предоставить только этот уровень предложения.

Смежные вопросы