2011-07-16 57 views
0

我正在使用此代码动态更改span元素的文本。它在Chrome中工作,只改变一次跨度的内容,但在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事件触发该事件 标志的链接已被更新之后。 (标记链接出现在 两种口味:“书签这个!”和“Unbookmark this!”,并且当我们 谈到“更新”时,我们的意思是这种外观变化)。

的,甚至连接到一个“标志”按钮

+1

首先,我认为'string'是一个保留字,不应该使用。其次,你是否尝试过使用console.log进行调试? – tjameson

+1

bindFlagUpdate调用bindFlagUpdate,你将这个匿名函数绑定到事件无限次! –

+0

我不知道console.log是什么。我是新人,对不起。但我看着它 –

回答

2

要回答这个问题,我们需要更多地了解事件flagGlobalAfterLinkUpdate以及它是如何触发。这听起来像事件的回调函数中的某个事件触发了事件,因此一旦它被触发一次,它就会不断触发它。

+0

我更新了问题。为什么它会在铬中工作? –

+0

触发事件的可能差异。可以行: $('#like-'+ data.contentId).html(“1 user like this”); 可能触发它? – Paulpro

+0

只有当有人点击“标记这个”按钮时才会触发它 –

相关问题