2010-12-12 9 views
0

http://cl.ly/2D221O0J33421Y1v2V0QAJAX複数回の投稿Chrome

これを避ける方法はありますか?などあなたが(もちろん、関数の最後に配置される)あなたのクリックハンドラreturn false;を持ったことがあります

votes.php:http://pastie.org/1369778

jQuery(function(){ 
jQuery("a.vote_down").click(function(){ 
//get the id 
the_id = $(this).attr('id'); 

// show the spinner 
$(this).parent().html("<img src='images/spinner.gif'/>"); 

//the main ajax request 
    $.ajax({ 
    type: "POST", 
    data: "action=vote_down&id="+$(this).attr("id"), 
    url: "/votes.php", 
    success: function(msg) 
    { 
    $("span#votes_count"+the_id).fadeOut(); 
    $("span#votes_count"+the_id).html(msg); 
    $("span#votes_count"+the_id).fadeIn(1000); 
    $("span#vote_buttons"+the_id).remove(); 
    } 
    }); 
}); 
}); 
+0

の問題は、以下に投稿された問題です。 – kobe

答えて

2

完全にFirefoxで

ワークス?または、eというハンドラで引数をとり、e.stopPropagation()を追加してください。

ボトムラインは、クリックイベントが処理されるとバブリングすることを防止することです。

+0

これは機能しません。あなたはコードを見てみることができますか? http://pastie.org/1371658 – switz

+0

このスクリプトに付属するHTMLスニペットを追加することができます。マークアップに何か関係があるかどうかを確認して、自分自身を再現しようとしていますか? – HackedByChinese

+0

私はあなたの質問で混乱しています。あなたが望むなら? – switz

1

それはhrefのイベントであれば、コード

event.preventDefault(); //の末尾に次の操作を行い、これはあなたができる

http://api.jquery.com/event.preventDefault/

または

return false; 
+0

これは機能しません。あなたはコードを見てみることができますか? http://pastie.org/1371658 – switz

0

を行うための良い方法です「クリック」ショートカットの代わりに「デリゲート」メソッドを使用してみてください。 "$ .delegate"は、ウィンドウオブジェクトではなく要素のコンテキストにイベントを割り当てることで、イベントのバブリングを防ぎます。

「アンカー」に空の「href」パラメータを使用している場合は、スパンのような別のHTML要素を使用することもできます。