[英]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.