del node (useCapture & avoid passive)

  • /*
     * @title del node (useCapture & avoid passive)
     * @description delete selected node just once
     * @include http://*
     * @include https://*
     * @contributor noromanba http://let.hatelabo.jp/noromanba/let/hLHWyeejvP4c (fork of)
     * @license MIT License http://opensource.org/licenses/MIT
     * @javascript_url
     */
    
    (function() {
      'use strict';
    
      // * In Chrome >= 55, passive:true is default for touchstart
      //   which prevents e.preventDefault().
      // * Some browsers will treat 'options' parameter as 'useCapture',
      //   but actually this script should catch the event sooner :p
      const options = { passive: false, capture: true };
      
      function deleteOnce(e) {
        e.stopPropagation();
        e.preventDefault();
    
        e.target.parentNode.removeChild(e.target);
    
        document.removeEventListener('click', deleteOnce, options);
        document.removeEventListener('touchstart', deleteOnce, options);
      }
      
      document.addEventListener('click', deleteOnce, options);
      document.addEventListener('touchstart', deleteOnce, options);
    })();
  • Permalink
    このページへの個別リンクです。
    RAW
    書かれたコードへの直接のリンクです。
    Packed
    文字列が圧縮された書かれたコードへのリンクです。
    Userscript
    Greasemonkey 等で利用する場合の .user.js へのリンクです。
    Loader
    @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
    Metadata
    コード中にコメントで @xxx と書かれたメタデータの JSON です。

History

  1. 2017/02/19 18:04:44 - 2017-02-19
  2. 2017/02/19 18:02:23 - 2017-02-19