0

こんにちは、投票スクリプトのプロジェクトに取り組んでいます。あなたがこのスクリプトで考えているように、私はユーザーに 24 時間に 1 回以上投票しないようにしています。私はそれがうまく機能するphp部分を持っています。ユーザーのIPと投票時間を記録します。PHPの部分では、増加後の総投票数も返します。そしてjqueryの部分では、その数字を小さなボックスに入れたいと思っています。私はjavascript変数を作成し、それを整数にします

myApp={};

そして、私はこのようにjqueryの戻り値を入れます

myApp.vote=parseInt(result);

たとえば、ユーザーが投稿完了後に投票結果アラート 11 をクリックしたときにサイトの総投票数が 10 である場合 (すべて進行中です)、その数を myApp.vote に入れます。

 $(this).parent().parent().parent().children("#bar-3").find(".bar-percent").eq(0).html(myApp.vote);

ここで問題が始まりますjqueryはそのスパンの古い投票番号(10)に入れますが、11でなければなりません

$(document).on("click", ".up", function(){
var vote;
var siteId=$(this).parent().parent().parent().find(".g6").attr("siteid");
if(myApp.siteId!=siteId){



$.post("vote.php", {
    siteId: siteId,
    vote:"up"
}, function (result) {
    alert(result);
    myApp={};
    myApp.vote=parseInt(result);


    });
$(this).parent().parent().parent().children("#bar-3").find(".bar-percent").eq(0).html(myApp.vote);
$(this).parent().parent().parent().children("#bar-3").find(".bar-percent").eq(0).animate({
    backgroundColor: "#FFFF00",

    }, 200, function() {
    // Animation complete.
    });



$(this).parent().parent().parent().children("#bar-3").find(".bar-percent").eq(0).animate({
    backgroundColor: "#FFFFFF",

    }, 1000, function() {
    // Animation complete.
    });


}else if(myApp.siteId==siteId){
$(this).parent().append("<span>already voted  </span>").children("span").addClass("alreadyVoted").animate({
opacity: 0,


}, 2000, function() {
// Animation complete.
});;

};



myApp.siteId=siteId;

$(this) が何も参照していないため、html 呼び出しの間にそれらを配置しようとすると、選択できません。これは私の html 部分です。1311 を選択したいのですが、選択できませんでした。

<div class="home_img_box p10 mt10">
<div class="g6" siteid="144">
<img class="syn_img" src="../sI/s/youtube_com-13-04-22.jpg">
</div>
<div class="g5">
<h3 class="handle">
youtube
<img id="up" class="up" src="./images/up.png">
<img class="down" src="./images/down.png">
</h3>
<p>youtube</p>
</div>
<img class="hit" src="./images/hit.png" alt="Hit">
<img class="vote" src="./images/vote.png" alt="Hit">
<div id="bar-1" class="jbar jbarPr jqbar horizontal" pr="9">
<span class="bar-label">PR</span>
<span class="bar-level-wrapper">
<span class="bar-level" data-value="9" style="height: 10px; width: 27px; background-color: rgb(214, 71, 71);"></span>
</span>
<span class="bar-percent">9</span>
</div>
<div id="bar-2" class="jbar jbarHit jqbar horizontal" hit="1254">
<span class="bar-label"></span>
<span class="bar-level-wrapper">
<span class="bar-level" data-value="1254" style="height: 10px; width: 0px; background-color: rgb(58, 137, 201);"></span>
</span>
<span class="bar-percent">1254</span>
</div>
<div id="bar-3" class="jbar jbarVote jqbar horizontal" vote="1311">
<span class="bar-label"></span>
<span class="bar-level-wrapper">
<span class="bar-level" data-value="1311" style="height: 10px; width: 0px; background-color: rgb(58, 137, 201);"></span>
</span>
<span class="bar-percent">1311</span>
</div>
</div>
4

1 に答える 1

1

に渡しhtmlたコールバック内にコールを配置します$.post。そのまま、リクエストを開始し、リクエストが完了するのを待たずにアニメーションを実行します。

于 2013-04-27T23:57:47.320 に答える