2012-02-12 10 views
2

この機能は機能しますが、ボタンが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 ")を書き直すことができます。/* do do finish * /});}); ' – 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

イェップ、これは動作します。あなたが言ったことはすべて正しいです。ありがとうございました。 –

関連する問題