0

在这里,我正在尝试制作一个类似 facebook 的按钮。这是我的代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>like button</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
<style>
    #like {
        height: 215px;
        background: url(images/sprite.png) no-repeat;
        background-position: 0px 0px;
    }
</style>
<script type="text/javascript">
    $(document).ready(function(){
        $("#like").click(function(){
            $("#like").css("background-position","0px -225px");
        });
    });
</script>
</head>
<body>
    <div id="like">
    </div>
</body>
</html>

现在,当用户单击该图片时,该图片将发生变化。我想反过来改变那张照片。我怎样才能?有没有其他完美的方法来实现这个?

4

1 回答 1

1

定义 2 个 CSS 类(一个用于活动状态,第二个用于其他状态)并具有相关的 CSS(从精灵图像加载图像)。在按钮/类似图像点击事件上使用那些。像这样的东西

CSS

.stateA,.stateB
{
  background-image:url('http://www.wing-co.jp/img/ui/site_skin/default/sprite_facebook.png');
  width:20px;  height:20px;       
}

.stateA
{  
  background-position:-511px -212px;    
}
.stateB
{
  background-position:-498px -212px;    
}

HTML

<input type="button" id="btnLike" class="stateA" value="" />

Javascript

$(function(){

    $("#btnLike").click(function(e){
      e.preventDefault();
      var item=$(this);
      if(item.attr("class")=="stateA")
      {
         item.removeClass("stateA").addClass("stateB");
         //If you want to update database,you can make an ajax call here
      }
      else
      {
         item.removeClass("stateB").addClass("stateA");
         //If you want to update database,you can make an ajax call here
      }
  });   

});

工作样本:http: //jsfiddle.net/cGWTM/32/

于 2012-05-25T17:47:23.640 回答