2011-08-30 3 views
2

나는 jQuery를의 VERI 기본 기능을 사용하고 있지만, 어떤 이유없이이 나는 실행 ... 두 번 같은 반복 것 : jQuery. append()가 콘텐츠를 복제합니까?

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

그리고는 "AA"를 표시합니다 #commentrating 사업부 내부

.. ! 이 버그의 원인은 무엇입니까? Elsewere는 웹 사이트에서 잘 작동하지만 실제로 이해할 수는 없습니다.

이벤트는

PS 후론()가 아니라 버 그냥 ... ".ready (함수() {jQuery를 (문서)"그래서 다른 트리거 또는 interferring 기능이없는 후 소성 : S

+10

http://jsfiddle.net/에 문제를 다시하고 코드의 컨텍스트를 게시하거나 귀하의 사이트에 대한 링크를 제공하기 위해 시도하십시오. 우리는이 코드 줄을 많이 제공하지 못합니다. 웬일인지이 선은 두 번 실행되는 것 같습니다. –

+1

여기에 충분한 정보가 없지만, 어떤 이벤트가 추가가 두 번 트리거되고있는 것처럼 들립니다. 이는 일반적으로 클릭 이벤트를 바인딩 해제하지 않고 클릭 이벤트 내부에 바인딩하는 것과 같은 논리 문제를 제안합니다. 세 번 클릭하면 AAA 또는 AAAA가 추가됩니까? –

+0

Tentonaxe에 동의합니다. append 문 다음에 console.log()를 추가 한 다음 한 번만 호출되는지 확인합니다. – Narnian

답변

0

은 아마이 이벤트 버블 링에 의한 것 (단지 추측 한 더 이상의 정보를 사용할 수 없기 때문에)

이 가정 :.

<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> 

당신이 카스티 경우 ick을 클릭하면 내부 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

jquery-version을 사용할 준비가 된 버그가 있습니까? ready-callback 안에 경고를 두어 ready가 두 번 호출되는지 확인하십시오. –

+0

경고 두 번 호출됩니다! v1.6.1 WordPress의 관리자 패널에서 호출하는 중입니다 ... – teocomi

관련 문제