Ищите помощь, если это возможно.Рефактор Код JQuery в функцию для повторного использования
Я создал некоторый JQuery код, который делает работу, но я чувствую себя немного cluncky, и хотел бы, чтобы правильно реорганизовать его ...
На данный момент код реагирует на щелчок пользователя, он проверяет сервер, если пользователю разрешено голосовать, если это так, он обрабатывает голосование через ajax и соответственно проводит голосование.
Однако он в настоящее время настроен на запуск только при нажатии на ссылку «голос вверх», где он добавляет один к подсчету голосов. То, что я также хочу сделать, это отвлечь 1 от подсчета голосов, когда пользователь нажимает на ссылку с классом = «проголосовать вниз», но я не хочу повторять один и тот же код заново, для этого.
Удивление если есть в любом случае, чтобы упаковать весь код в функцию, и сказать: «добавьте, если голос до щелчка, умаляет один, если голос вниз нажата.
Большое спасибо
<a href="link class="vote up"> Vote Up </a>
<a href="link class="vote down"> Vote Down</a>
$('body#true .voteUp').click(function(){
// Get the song meaning
$thisLink = $(this);
var idSm = $(this).parents("div:eq(1)").attr("id");
//Validate that user isnt rating their own song meaning
$.getJSON('http://localhost:8500/mxRestore/model/mdl_songs.cfc?method=getRateSm&returnFormat=json&queryformat=column',
{idSm: idSm},
function(data){
var bVoteAllowed = data.ROWCOUNT < 1;
if(bVoteAllowed){
// User can vote
$.getJSON('http://localhost:8500/mxRestore/model/mdl_songService.cfc?method=rateSm&returnFormat=json&queryformat=column',
{idSm:idSm,action:true})
// Change vote accordingly
var totalQuantity = 0;
var quantity = $thisLink.parent().parent().children('.rateValue').text();
quantity = parseInt(quantity);
totalQuantity = quantity + 1;
$thisLink.parent().parent().children('.rateValue').text(String(totalQuantity)).effect("highlight", {}, 3000);
}else {
$thisLink.text("you are not allowed to vote")
}
})
return false
})
'body # true' не является необходимым и может замедлить работу. Просто используйте '# true'. Еще лучше, я бы написал так: «#true a.voteUp» –
спасибо за ваше предложение ... почему это улучшенный метод? Спасибо – namtax