2013-01-02 5 views
1
$('nav .show_all').on('click', function() { 
    $('#all_pages'). 
    addClass('active'). 
    css('opacity', 0). 
    animate({ 
     opacity: 1 
    }, 1000); 
    Book.all_pages(); 
    return false; 
}); 



all_pages: function() { 
alert ('test1'); // test here is ok 
$('#slider li').click(function() { 
alert ('test2'); // this test is not ok 
}); 
} 

위의 예는 nav.showall을 클릭하면 div #allpage가 열리는 샘플입니다. 여기서 버그는 사용자가 div를 닫고 다시 열면 함수 실행 수가 div 닫음 수에 영향을줍니다.CSS를 변경하여 Div가 표시되면 해당 div의 이벤트가 여러 번 발생합니다.

예를 들어 사용자가 처음으로 div 상자를 열면 사용자가 div 상자를 열고 닫은 다음 다시 열면 'test'라는 경고 메시지가 표시됩니다. 두 번 'test ' 등등. 이 문제를 해결하는 방법?

+3

당신이 HTTP에서 문제를 시뮬레이션 할 수 있습니다 : // jsfiddle.net? 고맙습니다. –

+2

스 니펫이 정상적으로 보입니다. 문제는 다른 곳에서 발생해야합니다. – Christophe

+2

이 코드를 다시로드하는 페이지의 AJAX가 있습니까? 같은 핸들러가 다시 호출되면 – charlietfl

답변

2

자바 스크립트에 전역 변수를 지정하고 개체에 클릭하는 동안 당신이 여기 요구에 따라 추적 할 수 있도록 여기에 카운터 더미 데이터를 증가 :

var i=0; 
function your_function(){ 
    ///....... 
    // your code goes here 
    if (i % 2 == 0) { 
     alert('You Open it :)'); 
    } 
    i++; 
} 
+0

경고를 추가하고 두 번 팝업되는지 확인하십시오. 더 쉬울 것입니다. 게다가 if 문에서'$ '는 없어야한다고 생각합니다. –

관련 문제