jquery переключать голоса с помощью события jquery toggle?
У меня есть этот скрипт, который отлично работает, который позволяет пользователю голосовать, но я вроде как могу сделать кнопку голосования, при повторном нажатии она переключается на нормальное изображение! так же, как stackru:
это мой сценарий:
$(document).ready(function() {
$('.statuses').delegate('.vote_up', 'click', function(e) {
//stop event
e.preventDefault();
//get the id
var the_id = $(this).closest('.message').attr('id').split('_').pop();
//the main ajax request
$.ajax({
context: this,
type: "POST",
// Make sure "this" in the callback refers to the element clicked
data: "action=vote_up&id=" + the_id,
url: "ajax/votes.php",
success: function (msg) {
$(this).siblings("span.vote_count").html(msg).fadeIn();
// get the child <img> and set its src
$(this).children("img").attr("src", "img/uparrowActive.png");
}
});
});
HTML:
<ul class="statuses">
<li id="set_41" class="message">
<span class="vote_count">0</span>
<a href="#" class="vote_up"><img src="img/uparrow.png" /></a>
это псевдо-язык, с которым я хочу случиться:
a user clicks vote image, it changes the image(uparrowActive)
//I've done that already
then
if user clicks the same image again it goes back to normal image(uparrow)
1 ответ
Решение
В jquery есть событие переключения, которое позволяет вам связать два обработчика событий с элементом, который вызывается поочередно.
* непроверенный, возможно, имеет простые синтаксические ошибки.
myElement.toggle(vote(), unvote());
function vote()
{
// add a vote to the item
// change icon to vote icon
}
function unvote()
{
// remove a vote from the item
// change icon to default icon.
}