[英]What is the way in order not to kill event handler in javascript?
我有一個打印功能,允許我打印我的HTML內容。 我可以點擊打印按鈕,但在我點擊打印布局上的取消按鈕后,我的所有javascript都被殺了。 我不能再對其他按鈕采取任何行動了。
HTML:
<div id="printArea">
<p>Hello World</p>
</div>
<button type="button" id="printer">Print</button>
使用Javascript
$(document).on('click', '#printer',function(event){
event.preventDefault();
var printContents = document.getElementById("printArea").innerHTML;
var originalContents = document.body.innerHTML;
document.body.innerHTML = printContents;
window.print();
document.body.innerHTML = originalContents;
});
我想點擊打印按鈕,然后點擊取消按鈕返回,其他按鈕仍然可以照常采取行動。
任何幫助都會非常感激。
最好的解決方案是使用css隱藏/顯示元素,但由於某種原因,如果不可能,在腳本中不要替換元素,而是顯示/隱藏它們
$(document).on('click', '#printer', function (event) {
event.preventDefault();
var $print = $("#printArea");
//hide teh contents of the page
$(document.body).wrapInner('<div style="display: none"></div>');
//move a copy of the print area to the body and show it
var $div = $('<div />').append($print.clone().contents()).appendTo(document.body);
window.print();
//remove the temporary print display
$div.remove();
//show back the original content
$(document.body).children().contents().unwrap();
});
演示: 小提琴
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.