2011-08-27 10 views
0

화살표 앵커 항목으로 토글 할 수있는 div가 있습니다. 일단 클릭하면 div는 내용을 표시하거나 숨 깁니다 (앵커 및 제목이있는 머리글을 유지).이벤트 트리거링이 완료되지 않았습니다.

토글 러 옆에는 div를 삭제해야하는 아이콘이 있는데, 토글 러가 닫히면 토글 러의 이벤트가 실행되고 div를 열어서 확인해야합니다. 삭제하려고하거나하지 않을 것입니다.

var toggler = parentDiv.find('a.toggle'); 
        if (toggler.hasClass('toggle_closed')) 
         toggler.trigger('click',function(){ 

         }); 
        var option = parentDiv.find('input[name="tag"]').val(); 

        var textConfirm = 'Are you sure you want to delete the "'+option+'"?'; 
        if (confirm(textConfirm)){ 
do something; 
} 

문제는 내가이 이벤트를 발생 삭제 버튼, 그래서 화살표 변경을 클릭하지만이 사업부를 표시하지만 확인을 요구하지 않는 경우에,이다 :

여기 내 코드입니다. 취소하면 div가 표시되므로 이벤트를 끝내려면 기다려야합니다. 아마 여기에 문제가되지 않습니다

toggler.trigger('click'); 

을 :

답변

0

.trigger() 함수 두 번째 매개 변수는 'extraParameters'그래서 먼저이 같은 라인을 변경하려고합니다. 컨텐트 사업부를 토글 할 때 애니메이션이 있습니까? 어쩌면 확인이 애니메이션을 차단하고있을 수도 있습니다. 클릭을 트리거하는 대신 토글 (또는 slideToggle)을 수동으로 호출하고 애니메이션이 끝날 때 콜백을 사용할 수 있습니다.

function showDelConfirm(targetDiv) { 
    var option = targetDiv.find('input[name="tag"]').val(); 
    var textConfirm = 'Are you sure you want to delete the "' + option + '"?'; 
    if (confirm(textConfirm)) { 
     do something; 
    } 
} 

$('.deleteButton').click(function() { 
    var parentDiv = $(this).parent(); 
    var toggler = parentDiv.find('a.toggle'); 
    if (toggler.hasClass('toggle_closed')) { 
     $('.divToShow').toggle('fast', function() { 
      showDelConfirm(parentDiv); 
     }); 
    } else { 
     showDelConfirm(parentDiv); 
    } 
}); 
관련 문제