javascript - 页面加载时点击有效
问题描述
需要帮助,click
页面加载后立即工作。我阅读并尝试了不同的选项,但没有帮助。我找不到正确的解决方案。
$.ajax({
url: '/print',
success: function (response) {
function printContent(el) {
var restorepage = document.body.innerHTML;
var printcontent = document.getElementById(el).innerHTML;
document.body.innerHTML = printcontent;
window.print();
document.body.innerHTML = restorepage;
}
response.forEach(function (element, index) {
$('div.h4').after(
'<div id="print_' + index + '">' +
'<p>' + element + '</p>' +
'</div>' +
'<button id="button_' + index + '">Print</button>'
);
var el = document.getElementById('button_' + index);
el.addEventListener('click', printContent('print_' + index), false);
})
}
});
HTML:
<div class="h4"></div>
解决方案
您的问题在于el.addEventListener('click', printContent('print_' + index), false);
您立即调用该函数,而不是替换上面提到的行,如下所示
el.addEventListener('click', printContent, false);
并改变你的printContent
功能如下
function printContent() {
var el = $(this).prev().attr('id');
var restorepage = document.body.innerHTML;
var printcontent = document.getElementById(el).innerHTML;
document.body.innerHTML = printcontent;
window.print();
document.body.innerHTML = restorepage;
}
我没有测试过它,但它应该可以工作。如果它不起作用,请告诉我。