가능하면 도움을 얻으십시오.재사용을 위해 함수를 Jquery 코드로 리팩토링하십시오.
나는이 일을 몇 가지 jQuery 코드를 만들었습니다,하지만 난 느낌이 코드는 사용자가 클릭에 응답하는 순간
... 비트 cluncky이며, 제대로 리팩토링 싶습니다, 사용자가 투표 할 수 있는지 여부를 서버에서 확인합니다. 그렇다면 ajax를 통해 투표를 처리하고 그에 따라 투표를 이동합니다.
그러나 "투표 업"링크를 클릭 할 때만 실행되도록 설정되어 있습니다. 여기에 투표 수가 하나 추가됩니다. 또한 사용자가 class = "vote down"으로 링크를 클릭 할 때 투표 수에서 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