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 です。