javascript - 如何始终允许打印功能始终可点击?

标签 javascript jquery html

我有一个打印按钮,用于打印我的内容的某些区域。我可以点击打印我想要打印的内容,但是当我点击取消按钮返回到我的网页内容后,它不允许我再次点击打印按钮。

HTML:

<div id="printArea">
<p>Hello World</p>
</div>
<button type="button" id="printer">Print</button>

Javascript

$(document).ready(function(){
    $("#printer").on('click',function(e){
        e.preventDefault();
        var printContents = document.getElementById("printArea").innerHTML;
        var originalContents = document.body.innerHTML;
        document.body.innerHTML = printContents;
        window.print();
        document.body.innerHTML = originalContents;
        window.close();
    });
});

我想要做的是多次点击打印按钮和取消按钮。

感谢您的帮助。

最佳答案

您正在从文档中删除打印按钮,然后将其重新添加到文档中,但此时不再为该按钮注册单击事件处理程序。这不仅是打印按钮的问题,也是页面上已注册事件处理程序的所有元素的问题。

您可以在重新添加元素后重新注册事件处理程序,但最好不要首先删除这些元素。

正如 @NathanTuggy 的评论中所建议的,您可以使用 CSS 来防止在打印页面时包含某些元素。您可以使用 CSS media query 来做到这一点.

如果您只想从打印页面中排除打印按钮,您可以添加:

<style>
@media print {
    #printer {
        display: none;
    }
}
</style>

关于javascript - 如何始终允许打印功能始终可点击?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30880722/

相关文章:

javascript - 使用ajax提交multipart/form-data时,文件为空

javascript - 有没有办法在 MVC 中的 View 上使用 ajax 调用来使用新信息刷新页面?

PHP 代码不允许通过我的表单发送多个输入值

jquery - 在 javascript 动画上 append html

javascript - HTML 5 Div 位置

javascript - TinyMCE 4.7.4 不适用于包含查询字符串参数的 URL

javascript - 在里面插入一个动态值

javascript - HTML5 : load a changing image from file on click

javascript - 增加可为 null int 的值(int?)

javascript - 播放嵌入的 YT 时停止 CSS 动画