更改按钮图像onclick

时间:2014-05-26 01:20:51

标签: jquery ruby-on-rails

我有一个名为button1的按钮,我想在点击后更改为button2。

.button1 {
   background-image: url("example.com"); 
 }

.button2 {
  background-image: url("example2.com"); 
 }

链接如下所示:

  <%= link_to example_path do %>
  <div class="button1"></div>
  <% end %>

并且jquery看起来像这样:

 $(document).ready(function(){
   $('.button1').click(function(){
     $(this).toggleClass(".button2");
  });
 });

当我点击它时,什么也没发生。

3 个答案:

答案 0 :(得分:2)

这是在CSS中更好的方法;

.button1 {
   background-image: url("example.com"); 
 }

.button1:active {
  background-image: url("example2.com"); 
 }

答案 1 :(得分:1)

删除前导。在toggleClass行中:

 $(document).ready(function(){
   $('.button1').click(function(){
     $(this).toggleClass("button2"); //NOT .button2
  });
 });

答案 2 :(得分:1)

这两个类之间没有冲突:

$(document).ready(function(){
   $('.button1').click(function(){
     $(this).removeClass("button1").addClass("button2");
   });
});

如果您选择这条路线,我建议在按钮上放置一个与包含background-image属性的类无关的标识符。

<%= link_to example_path do %>
<div class="mybutton button1"></div>
<% end %>

然后你可以这样做:

$(document).ready(function(){
   $('.mybutton').click(function(){
     $(this).toggleClass('button1 button2');
   });
});

当然,除非您不希望在单击按钮后切换按钮,否则此帖子中的第一个代码示例就足够了。