【问题标题】:Rails: How to change image in javascript?Rails:如何在javascript中更改图像?
【发布时间】:2019-01-17 05:07:01
【问题描述】:

这是我的 javascript 代码:

  //changing of eye icon of status
  $('.status-visible').on('click', (e) => {
    if ($(e.currentTarget.children[0]).attr('src') == '../assets/visible.png') {
      $(e.currentTarget.children[0]).attr('src', '../assets/notvisible.png');
      $(e.currentTarget).attr('uk-tooltip', 'Not Visible');
    }
    else {
      $(e.currentTarget.children[0]).attr('src', '../assets/visible.png');
      $(e.currentTarget).attr('uk-tooltip', 'Visible');
    }
  });

它可以在本地运行,但是当我将它上传到 heroku 并运行 assets:precompile 时,它​​会生成新的图像名称。

这是我的 html 代码:

<td>
                        <button class="uk-border-rounded status-visible" uk-tooltip='Visible'>
                          <img src="../assets/visible.png" class='uk-icon-image' />
                        </button>
                      </td>

现在,每次我有新资产并运行 rails assets:precompile 它将生成新的图像路径 这样它就不会在暂存时工作。

【问题讨论】:

    标签: javascript html ruby-on-rails


    【解决方案1】:

    您可以将图像移动到public/ 文件夹并直接引用它们:

      $('.status-visible').on('click', (e) => {
        if ($(e.currentTarget.children[0]).attr('src') == '/visible.png') {
          $(e.currentTarget.children[0]).attr('src', '/notvisible.png');
          $(e.currentTarget).attr('uk-tooltip', 'Not Visible');
        }
        else {
          $(e.currentTarget.children[0]).attr('src', '/visible.png');
          $(e.currentTarget).attr('uk-tooltip', 'Visible');
        }
      });
    

    HTML

    <td>
      <button class="uk-border-rounded status-visible" uk-tooltip='Visible'>
        <img src="/visible.png" class='uk-icon-image' />
      </button>
    </td>
    

    【讨论】:

    • 可以把文件移到那里吗?
    • 是的,这样的小图片应该没问题
    猜你喜欢
    • 1970-01-01
    • 2012-11-17
    • 2018-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-04
    相关资源
    最近更新 更多