2011-08-30 69 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