需要帮助,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>
答案 0 :(得分:0)
您的问题在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;
}
我还没有测试过,但是应该可以。请让我知道它是否无效。