del node (useCapture & avoid passive)
@@ -1,9 +1,9 @@
/*
- * @title del node
+ * @title del node (useCapture & avoid passive)
* @description delete selected node just once
* @include http://*
* @include https://*
- * @contributor unarist http://let.hatelabo.jp/unarist/let/hJmev5mP7YUV (Fork of)
+ * @contributor noromanba http://let.hatelabo.jp/noromanba/let/hLHWyeejvP4c (fork of)
* @license MIT License http://opensource.org/licenses/MIT
* @javascript_url
*/
@@ -11,16 +11,22 @@
(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);
- document.removeEventListener('touchstart', deleteOnce);
+ document.removeEventListener('click', deleteOnce, options);
+ document.removeEventListener('touchstart', deleteOnce, options);
}
- document.addEventListener('click', deleteOnce);
- document.addEventListener('touchstart', deleteOnce);
-})();
-
+
+ document.addEventListener('click', deleteOnce, options);
+ document.addEventListener('touchstart', deleteOnce, options);
+})();
/*
* @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 です。