单击 div 时捕获它

Capture the div when clicked on it

我想在我有多个 div 相同的 class 名称的环境中使用 jquery 和 HTML2Canvas 库在单击它时捕获一个 div 元素.

这是一个控制台页面,我想在该页面上为用户提供一个额外的选择来捕获或不捕获 div,每个人都不要在意我正在使用的事件侦听器。

$('.panel.panel-default', this).one("mouseenter", function() {
  html2canvas(document.getElementsByClassName("panel panel-default")).then(canvas => {
    //document.body.appendChild(canvas);
    var image = canvas.toDataURL("image/png").replace("image/png", "image/octet-stream");  
    console.log(image);  
    window.location.href = image;
  })
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="panel panel-default">
  <div class="panel-body">
    <a> this is panel one</a><br><br>
  </div>
</div>
<div class="panel panel-default">
  <div class="panel-body">
    <a> this is panel two</a><br><br>
  </div>
</div>
<div class="panel panel-default">
  <div class="panel-body">
    <a> this is panel three</a><br><br>
  </div>
</div>

实际结果应该是当我点击 this is panel one 事件时会将 div 捕获到文件中。

您只需要传递正确的上下文

  $('.panel-body').on("click", function () {
        html2canvas(this).then(canvas => {
            //document.body.appendChild(canvas);
            var image = canvas.toDataURL("image/png").replace("image/png", "image/octet-stream");
            console.log(image);
            window.location.href = image;
        })
    });