现在我做了这个:
<a href="#" title="[+] Add as favorite"><div class="addFavorite"></div></a>
Run Code Online (Sandbox Code Playgroud)
class ="addFavorite",是一个普通的灰色星.
然后我有另一个类="AlreadyFavorite",这是一个黄星.
我想创建一个函数,所以当你点击灰色星形时,它会发送一个ajax调用(?)然后成功它变成黄色(将类更改为AlreadyFavorite).
我知道如何制作一个发送ajax调用的onclick函数,但是如何更改样式/将图像图标更改为黄色?
CSS:
.addFavorit{
background: url('../images/addFavorit.png');
width: 48px;
height: 48px;
}
.alreadyFavorit{
background: url('../images/addFavorit_hover.png');
width: 48px;
height: 48px;
}
Run Code Online (Sandbox Code Playgroud)
Ste*_*oth 12
尽量不要在可能的情况下重复自己并避免不必要的元素:
HTML:
<a href="#" id="fav" title="[+] Add as favorite"> </a>
Run Code Online (Sandbox Code Playgroud)
CSS:
a#fav{
background: url('../images/addFavorit.png');
display: block;
width: 48px;
height: 48px;
}
a#fav.active{
background: url('../images/addFavorit_hover.png');
}
Run Code Online (Sandbox Code Playgroud)
JAVASCRIPT
function addFav(){
$.ajax({
url: "/favorites/add",
data: {"id": articleID},
success: function(){
$('a#fav')
.addClass('active')
.attr('title','[-] Remove from favorites')
.unbind('click')
.bind('click', removeFav)
;
}
});
}
function removeFav(){
$.ajax({
url: "/favorites/remove",
data: {"id": articleID},
success: function(){
$('a#fav')
.removeClass('active')
.attr('title','[+] Add as favorite')
.unbind('click')
.bind('click', addFav)
;
}
});
}
//this will make the link listen to function addFav (you might know this already)
$('a#fav').bind('click', addFav);
Run Code Online (Sandbox Code Playgroud)
在第一次addFav()调用指定的URL时单击该链接,在成功处理后,将调用成功定义的函数.结果:
<a href="#" id="fav" class="active" title="[-] Remove as favorite"> </a>
Run Code Online (Sandbox Code Playgroud)
第二次单击将removeFav()由于重新绑定而调用.结果将是:
<a href="#" id="fav" class="" title="[+] Add as favorite"> </a>
Run Code Online (Sandbox Code Playgroud)
在那之后,如果您的服务器没有采取行动,那将是无限循环.
| 归档时间: |
|
| 查看次数: |
7881 次 |
| 最近记录: |