2012-02-12 4 views
2

이 기능은 작동하지만 버튼이 두 번 클릭 된 후에 만 ​​열립니다 (이후 클릭이 첫 번째 클릭에 대해 조치를 받음).jquery href 링크를 클릭하십시오. 두 번 클릭해야합니다.

$(document).ready(function(){ 
    $('a#printPosBtn').on('click', function(e) { 
     e.preventDefault(); 
     $('.printPopup').popupWindow({ 
      centerBrowser:1, 
      height:500, 
      width:720, 
      scrollbars: 1, 
      resizable: 1 
     }); 
     return false; 
    }); 
}); 

무엇이 잘못 되었습니까?

+0

'e.preventDefault();'는 코드에서'return false;'와 같은 일을한다. – elclanrs

+0

코드에 아무런 문제가 없습니다. 왜 그런 일이 일어나고 있는지 디버깅하기 위해서는 실제 페이지를보아야 할 것입니다. – jfriend00

+0

예, 당신은 심각하게 그와 같은 이중 취소를 사용하여 자신의 원인을 물리 쳤습니다. 또한, jquery에 대한 아주 오래된 스타일의 작업을 사용하고 있습니다. 더 쉬운'$ (function() {$ ("# printPosBtn"))을 쉽게 다시 작성할 수 있습니다./* 작업 완료 * /});}); ' – SpYk3HH

답변

2

나는 실제로 당신이 click 처리기 내에서 플러그인을 초기화하고 있기 때문이라고 생각합니다. 빠른 스키밍에서 popupWindow 문서를 통해 플러그인은 click 핸들러 바인딩을 처리하는 것처럼 보입니다. 즉, 첫 번째 클릭은 팝업 기능 (onclick 핸들러 포함)을 바인딩하므로 두 번째 클릭시에만 작동합니다. 나는 시도 할 것이다 :

$(document).ready(function() { 

    $(".printPopup").popupWindow({ 
     centerBrowser: 1, 
     height: 500, 
     width: 720, 
     scrollbars: 1, 
     resizable: 1 
    }); 

    // open popup by clicking on some other element 
    $('#printPosBtn').on('click', function(e) { 
     e.preventDefault(); 
     $(".printPopup").click();   
    }); 

});​ 
+1

예, 이것은 작동합니다. 네가하는 말은 모두 옳다. 고맙습니다. –

관련 문제