0

我认为这将是一种常见的需求,但未能成功找到解决方案。我关注了 Ryan Bates 的这个 ASCIIcast http://railscasts.com/episodes/302-in-place-editing?view=asciicast,现在在我的网站上进行了功能性的就地编辑。但是,我认为这些记录完全可编辑并不直观,因为它们只是显示为当前记录值的纯文本表示,直到您单击它们。我想要一些东西,以便选择下拉菜单默认显示,就像它以正常形式显示一样,如图所示。无论如何使用 best_in_place 或 rest_in_place 来做到这一点?我想一直看这个节目

4

3 回答 3

1

我知道这不完全是您正在寻找的答案,但您可以使用 .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;
}
于 2014-08-05T15:01:22.080 回答
0

我认为您想要做的是找到应用于元素悬停状态的样式,并将它们也复制到元素的正常状态。

在 chrome 检查器中:

  • 右键单击选择标签并选择“检查元素”
  • 右键单击“元素”选项卡中的元素,然后选择“强制元素状态”,然后选择“悬停”

现在,在检查器的右侧,您应该看到应用于:hover元素状态的样式。将这些复制到您的样式表中,并从规则末尾删除 ":hover" 部分。您可能需要在规则中添加一些额外的选择器,以确保您不会对整个站点的所有选择都执行此操作。

于 2014-08-05T15:03:45.033 回答
0

如果您的原始表单输入是通过单选按钮,则下拉菜单是 best_in_place 的默认行为。否则,您可以使用 :colllection 至少验证新数据条目。例如在 haml 中,更新后的答案必须是红色、绿色或蓝色:

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

于 2017-07-07T20:24:03.957 回答