DOM

Element.hasPointerCapture() メソッド

 編集:2022.09.25 by T.A.

[Edge]。→

element が与えられたポインターID によって識別されるポインタに対するポインター キャプチャを持つかどうかを Boolean で示します。

構文
element.hasPointerCapture(pointerId)
element Element
pointerId PointerEvent オブジェクトの pointerId
戻り値

Boolean。要素がポインター キャプチャを持っている場合は true、持っていない場合は false です。

<html>
  <script>
    function downHandler(ev) {
      const el = document.getElementById("target");
      // 要素 'target' はそれ以上のイベントを受信/キャプチャします
      el.setPointerCapture(ev.pointerId);

      /* ... */

      // 要素にまだポインタキャプチャがあるかどうかを確認します
      let pointerCap = el.hasPointerCapture(ev.pointerId);
      if(pointerCap) {
        // まだポインタキャプチャがあります
      } else {
        // おっと、ポインタキャプチャを失いました!
      }
    }

    function init() {
      const el = document.getElementById("target");
      el.onpointerdown = downHandler;
    }
  </script>
  <body onload="init();">
    <div id="target">この要素をポインタでタッチします。</div>
  </body>
</html>

HTML:

<DIV id=IdTest onpointerdown="Job(event)">[DIV要素。ここでポインターを…<SPAN>[SPAN要素]</SPAN>]</DIV>
<SPAN id=IdLog></SPAN>

JavaScript: 以下を組み込む。

function Job(eve){  //pointerdownイベントが起きたときの処理:
  let E=eve.target; //イベントが起きた要素を取得する。
  E.setPointerCapture(eve.pointerId); //?
  IdLog.innerHTML=E.tagName +':'+ E.hasPointerCapture(eve.pointerId) +':'+ eve.pointerType +':'+ eve.width;
	//表示:タグ名、hasPointerCapture()、PointerEvent.pointerTypePointerEvent.width。
}

テスト