Ruby on rails onmouseover用于链接到图像标签
我有一个链接图像标签,我想在鼠标上方更改图像。我原以为以下操作可以,但图像没有打开鼠标盖:Ruby on rails onmouseover用于链接到图像标签,ruby-on-rails,Ruby On Rails,我有一个链接图像标签,我想在鼠标上方更改图像。我原以为以下操作可以,但图像没有打开鼠标盖: <%= link_to image_tag("new_step.png"),new_project_step_path(@project), :class=> "newStep", :onmouseover => "new_step_highlighted.png"%> 对于这两种情况,仅显示图像“new_step.png”。我该如何解决这个问题?提前感谢您的帮助 仅使用css,
<%= link_to image_tag("new_step.png"),new_project_step_path(@project), :class=> "newStep", :onmouseover => "new_step_highlighted.png"%>
对于这两种情况,仅显示图像“new_step.png”。我该如何解决这个问题?提前感谢您的帮助 仅使用css,您需要将两个图像用作
链接到
标记(实际上是a
标记)的背景属性。根据您编写的内容,您将一个图像“硬编码”到dom中,并使用image\u标记
,您试图更改链接的背景属性,因为newStep
实际上是link\u to
类
<%= link_to "Text", new_project_step_path(@project), :class => "newStep" %>
这里是小提琴:事实证明,斯巴达的回答是正确的,只是我的图像路径实际上只是“/assets/new_step.png”。由于我的CSS文件存在问题,图像无法显示。您可以不用修改CSS,只需较少的代码:
<%= link_to some_route_path do
image_tag("find.png", onmouseover: "this.src='#{asset_path('find_sel.png')}'", onmouseout: "this.src='#{asset_path('find.png')}'")
end %>
谢谢您的帮助。我刚试过,加载页面时没有图像出现。我使用chrome inspector发现图像路径实际上是assets/new_step.png,所以我将css文件更改为url('/assets/new_step.png'),但图像仍然没有出现…这是图像url路径中的一个输入错误,开头是单引号,结尾是双引号吗?在inspector中,当您单击css中的图像链接时,图像是否出现了?哇,是的,这是一个输入错误;两端都应该有双引号。当我单击“new_step.png”时“css中的图像链接,new_step.png确实会出现。页面加载时似乎没有加载new_step_highlighted.png。此外,尽管css中的图像链接看起来确实有效,但图像本身并不显示在页面上。您认为“页面加载时似乎没有加载new_step_highlighted.png”是什么意思?当你点击css检查器链接时,这张图片会出现吗?对不起,我不确定我是否理解你的意思。当我在Chrome中打开inspector并转到“资源”选项卡时,图像“new_step.png”显示在我的图像文件夹下。它表示图像的url为:。如果转到链接,将显示高亮显示的图像。但是,这个文件没有出现在inspector中我的“images”文件夹中。这是一个老式的突兀JS,可能应该避免,但在必要的时候,这是在Rails 4之前使用的:mouseover
选项image\u tag
所做的。即使我不使用它,它也会起作用,所以你值得投票。
.newStep {
display: inline-block;
width: your-image-width;
height: your-image-height;
background: url('/assets/new_step.png');
}
.newStep:hover {
background: url('/assets/new_step_highlighted.png');
}
<%= link_to some_route_path do
image_tag("find.png", onmouseover: "this.src='#{asset_path('find_sel.png')}'", onmouseout: "this.src='#{asset_path('find.png')}'")
end %>