页面加载时点击有效

时间:2018-08-26 08:12:12

标签: javascript jquery

需要帮助,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>

1 个答案:

答案 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;
}

我还没有测试过,但是应该可以。请让我知道它是否无效。