best_in_place показать опцию выпадающего меню

Я полагал, что это будет обычная потребность, но мне не удалось найти решение. Я следил за этим ASCIIкастом Райана Бейтса http://railscasts.com/episodes/302-in-place-editing?view=asciicast, и теперь у меня есть функциональные возможности редактирования на моем веб-сайте. Однако я думаю, что это не так интуитивно понятно, что эти записи вообще доступны для редактирования, поскольку они просто отображаются как простое текстовое представление текущего значения записи, пока вы не щелкнете по ним. Мне нужно что-то, чтобы раскрывающееся меню выбора отображалось по умолчанию, как в обычной форме, как показано на изображении. Есть ли способ сделать это с помощью best_in_place или rest_in_place? Я бы хотел, чтобы это шоу было все время


person ohhh    schedule 05.08.2014    source источник
comment
Распространенная проблема с вопросами по SO заключается в том, что они ожидают, что читатель уйдет и посмотрит видео, прежде чем смотреть на вопрос. Как правило, людей это не беспокоит. Кроме того, по этой картинке трудно сказать, какой аспект выбора вы хотите изменить. Вы имеете в виду, что хотите, чтобы в нем были две маленькие стрелки, но на самом деле он не был доступен для редактирования?   -  person Max Williams    schedule 05.08.2014
comment
Я понимаю, как это может расстраивать, но всегда есть приведение ASCII, в котором есть только все изображения: railscasts.com/episodes/302-in-place-editing?view=asciicast, вы правы, я должен был просто связать это. В настоящее время редактируемое поле представляет собой обычный текст на экране с текущим значением и превращается в раскрывающийся список только при нажатии на него. Я хочу, чтобы он ВСЕГДА выглядел так, как на картинке выше. В этом больше смысла?   -  person ohhh    schedule 05.08.2014
comment
Какой плагин gem / jquery / что-то еще вы используете, чтобы получить этот стиль при выборе в фокусе?   -  person Max Williams    schedule 05.08.2014
comment
OIC, жемчужина BestInPlace, github.com/bernat/best_in_place   -  person Max Williams    schedule 05.08.2014
comment
Bootstrap 2.3.2 для стилизации и реальной мощности js я использую github.com/bernat/best_in_place   -  person ohhh    schedule 05.08.2014


Ответы (3)


Я знаю, что это не совсем тот ответ, который вы ищете, но вы можете стилизовать значения best_in_place, используя класс .best_in_place.

Я сделал что-то подобное на своем веб-сайте, что показывает, что значение можно редактировать:

.best_in_place {
    padding-right: 18px;
    background-image: url('*/ link to an edit icon /*');
    background-size: 15px auto;
    background-position: right center;
    background-repeat: no-repeat;
    cursor: pointer;
}

.best_in_place:hover {
  background-color:#eeeeee;
}
person NicoFerna    schedule 05.08.2014

Я думаю, вы хотите найти стили, которые применяются к состоянию наведения элемента, и скопировать их также в нормальное состояние элемента.

В инспекторе Chrome:

  • Щелкните правой кнопкой мыши тег выбора и выберите «Проверить элемент».
  • Щелкните правой кнопкой мыши элемент, как показано на вкладке «Элементы», и выберите «Принудительное состояние элемента», а затем «наведите указатель мыши».

Справа от инспектора теперь вы должны увидеть стили, которые применяются к состоянию :hover элемента. Скопируйте их в свою таблицу стилей и удалите часть ": hover" в конце правила. Возможно, вам потребуется добавить в правило несколько дополнительных селекторов, чтобы убедиться, что вы не делаете это для всех выбранных элементов на всем сайте.

person Max Williams    schedule 05.08.2014
comment
Принуждение любого из активных, наведенных, посещенных, посещенных не приводит к раскрывающемуся меню. Я не знаю такого количества javascript, но я предполагаю, что в событии onclick он каким-то образом меняет элемент на раскрывающийся список. изображение проблемы - person ohhh; 06.08.2014

Раскрывающийся список - это поведение по умолчанию для best_in_place, если исходная форма вводится с помощью переключателей. В противном случае вы можете использовать: colllection, по крайней мере, для проверки новой записи данных. например в haml обновленный ответ должен быть красным, зеленым или синим:

.flex1=best_in_place :color, :type => :select, :collection => (["red","blue","green"])

person dctalbot    schedule 07.07.2017