質問: ### 実現したいこと 印刷ボタンを作り、クリックすると印刷ダイアログボックスを表示するようにしたく下記の通り記述をいたしました。 ``` 印刷をする ``` ``` $('div.print a').on('click',function(event){ event.preventDefault(); //←これが効かない? window.print(); }); ``` 上記で「印刷ダイアログボックス」が表示されるのですが、下記事象があります。 > > **Firefox最新ver.** > > 「印刷キャンセル」ボタンを押すと、ダイアログボックスが消えた後にページの上部までスクロールする > > > **InternetExplorer11** > > ページ上部までスクロールしてから「印刷ダイアログボックス」が表示される。 > > > ``要素をクリックした際のデフォルトの動作を抑制するには`Event`オブジェクトの`preventDefault()`を使用したら良いのかと思いましたが、こちらが機能しません。 印刷ボタンを押した際に「印刷ダイアログボックス」が表示され「キャンセル」を押した場合に上部スクロールさせず、元のページ表示位置を保つにはどのようにするのが良いかご教授いただけませんでしょうか。 宜しくお願い申し上げます。 ### 補足情報 印刷ボタンの記述箇所は複数のページにあるため、できるだけHTMLは変更せずに解決できるとありがたいです。
回答: `return false;` してみてはどうでしょう。 **追記:** リンクが問題なら消すとか。スクロールトップとかを入れているとこれでも効かないかも。 ``` $( 'div.print a' ).off().on( 'click', function( event ) { event.preventDefault(); this.href="javascript:void(0)"; window.print(); return false } ); ``` **動くサンプル:**