2011-07-16 3 views
0

私はこのコードを使用してスパン要素のテキストを動的に変更しています。これはクロムで動作し、スパンの内容を一度変更するだけですが、IEで無限ループを繰り返します(カウントは更新され続け、htmlテキストは変化し続けます)。私はそれをどうやって修正できるのか、それが起こるのは誰でも知っていますか?コードはChromeでは動作しますが、IEの無限ループで動作します

bindFlagUpdate(); 
function bindFlagUpdate(){ 
    $(document).bind('flagGlobalAfterLinkUpdate', function(event, data) { 
     var string = $('#like-' + data.contentId).html(); 
     var getNum = string.match(/[0-9]+/g);   
     var count = getNum[0]; 

     if(data.flagStatus == 'flagged') { 
      count++;    
     } else { 
      count--;   
     }   
     $('#like-' + data.contentId).html("1 user likes this"); 

     $(document).unbind(); 
     bindFlagUpdate(); 
     return false; 
    }); 
} 

イベントの説明:

flagGlobalAfterLinkUpdateイベントこのイベントは、フラグのリンクが更新された直後に トリガされます。 (フラグブックのリンクは、 の2つのフレーバーで表示されます。「これをブックマークしてください!」と「ブックマークを解除!」と表示されます。 は「更新」と言います。

も、私たちはイベントflagGlobalAfterLinkUpdateとどのようにそれがトリガーされた詳細を知る必要があり、これを答えるために「フラグ」ボタン

+1

第1に、私は 'string'は予約語であり、使用すべきではないと思います。第二に、console.logでデバッグしようとしましたか? – tjameson

+1

bindFlagUpdateがbindFlagUpdateを呼び出すと、この無名関数をイベントに無限回数バインドします。 –

+0

console.logが何であるか分かりません。私は新しい、すみません。しかし、私はそれを探して –

答えて

2

に取り付けられています。イベントがトリガーされているコールバック関数のように聞こえるので、一度トリガーされると、それは継続的にトリガーされます。

+0

質問を更新しました。なぜそれはクロムで動作するのだろうか? –

+0

イベントのトリガーとなる可能性のある違い。次の行があります: $( '#like-' + data.contentId).html( "1 user like this"); 可能性がありますか? – Paulpro

+0

誰かが「このフラグ」ボタンをクリックしたときにだけトリガする必要があります –

関連する問題