2011-01-31 8 views
0

클릭 이벤트가 콜백 함수가있는 윈도우에서 다른 클릭 이벤트를 바인딩 할 때 클릭 이벤트가 발생합니다. 이 경우 메뉴를 클릭하는 OS 메뉴와 같은 메뉴 일 뿐이며 메뉴 항목을 클릭하거나 메뉴 바깥 쪽을 클릭하면 메뉴가 닫힙니다. 마우스 오른쪽 버튼 메뉴, Ubuntu/Mac의 최상위 메뉴 막대 등을 생각하십시오.클릭 할 때 창을 클릭하지 못하도록 하시겠습니까?

내 문제는 클릭 할 때 클릭 이벤트가 클릭을 트리거하기 때문에 클릭한다는 것입니다. 어떻게 모든 "미래"클릭을 "지연"시킬 수 있습니까?

 {..code...} 
     actionMenu: function(action,item){ 
     if(action == 'open'){ 
      $(window).bind('click.contextMenus',app().actionMenu('close')); 
      $(item).addClass('active').find('ol').css({display:'block',top:$(item).outerHeight()+'px'}); 
     } 
     else if(action == 'close'){ 
      app().debug('closed?','console'); 
      $('#menu .active').removeClass('active'); 
      $('#menu > ol > li ol').css({display:'none'}); 
      $(window).unbind('click.contextMenus'); 
     } 
     }, 
     {..code...} 

그리고 :

$('#menu > ol > li').click(function(e){ 
    if($(this).find('ol').is(':visible')){ 
     app().actionMenu('close'); 
    } 
    else{ 
     app().debug('clicked?','console'); 
     app().actionMenu('open',this); 
     return false; 
    } 
    }); 

답변

1

대신 당신이 app().debug('closed/clicked?','console'); 찾는 경우

그래서 내 코드처럼 보이는 ... 두 가지를 볼 수 및 클릭에 그들은 모두 화재 창에서 바인딩 할 때 <body>에 바인드 할 수 있습니다 (윈도우에서 바인딩 할 때 전파 전파가 작동하는지 여부는 확실하지 않음)

$('body').bind('click.contextMenus',app().actionMenu('close')); 

한 다음 부모 요소를 '발사을 중지 메뉴의 OnClick에 이벤트 전파를 방지 할 수는

내가 밀접하게 충분한보고하지 않았다

$('#menu > ol > li').click(function(e){ 
    e.stopPropagation(); 
    if($(this).find('ol').is(':visible')){ 
     app().actionMenu('close'); 
    } 
    else{ 
     app().debug('clicked?','console'); 
     app().actionMenu('open',this); 
     return false; 
    } 
    }); 

편집을 온 클릭. 이것은 문제가되는 행입니다.

$(window).bind('click.contextMenus',app().actionMenu('close')); 

실제로 actionMenu() 함수가 호출됩니다. 대신이 작업을 수행해야합니다

$(window).bind('click.contextMenus', function() { app().actionMenu('close') }); 
+0

시도는이'false를 반환 추가;'은'응용 프로그램 ('가까운')() actionMenu 후, ' – Damp

+0

내 대답 – Damp

+0

YES 업데이트되었습니다.! 고맙습니다. 내가 그걸 놓친 걸 믿을 수가 없어. 다시 한 번 고마워! –

관련 문제