2011-08-30 38 views
2

我使用jQuery的VERI基本功能,但没有任何理由的喜欢重复两次...... 我运行:jQuery .append()复制内容?

jQuery("#commentrating").append('A'); 

而且DIV #commentrating它会出现一个“AA”里面.. !什么可能导致这个错误? Elsewere在它的网站工作得很好,我真的不知道它!

事件只是“就绪(函数(){jQuery的(文件)”,所以没有其他的触发器或功能interferring后被解雇......

PS 。经过()是越野车,以及:S

+10

请尝试重新创建与http://jsfiddle.net/您的问题,并张贴代码的上下文或提供一个链接到你的网站。仅仅给出这行代码我们无法帮到您。看起来由于某种原因,这条线运行了两次。 –

+1

这里没有足够的信息,但它听起来像任何事件导致附加被触发两次。这通常表明一个逻辑问题,例如在不解除绑定的情况下绑定点击事件内的点击事件。第三次点击它会导致AAA或AAAA被添加? –

+0

我同意Tentonaxe。我会在append语句后添加一个console.log(),然后验证它只被调用一次。 – Narnian

回答

0

也许它是由事件引起的冒泡(只是猜测,只要没有进一步的信息是可用的)

假设这样的:如果你CL

<script type="text/javascript"> 
jQuery(
    function($) 
    { 
    $('div') 
     .click(function(e) 
      { 
       $('span',this).append('A'); 
      } 
      ); 
    } 
); 
</script> 
<div><div><b>click here:</b><span></span></div></div> 

在文本上点击,点击会触发内部div,并且向外部div跳转,该函数将被执行2次。

为了避免这种使用stopPropagation()

<script type="text/javascript"> 
jQuery(
    function($) 
    { 
    $('div') 
     .click(function(e) 
      { 
       e.stopPropagation(); 
       $('span',this).append('A'); 
      } 
      ); 
    } 
); 
</script> 
<div><div><b>click here:</b><span></span></div></div> 
+0

事件在“jQuery(document).ready(function(){”所以没有其他的触发器或函数干扰... – teocomi

+0

ready()中有bug,你使用哪个jquery-version?在ready-callback中放置一个alert或者类似的函数来确定ready是否被调用两次。 –

+0

Alert被称为两次!它的v1.6.1我叫它从WordPress管理面板... – teocomi