「脱jQuery」 生JSで.one()のように1度だけイベントを実行する
jQueryにはイベントを 一度だけ 実行できる one()
という関数があります。生JSではどのように書くことができるのか紹介します。
jQuery
$('.selector').one('click', function() {
});
生JS
function one(node, event, callback) {
var handler = function(e) {
callback.call(this, e);
node.removeEventListener(event, handler);
};
node.addEventListener(event, handler);
}
こんな関数を用意します。1度呼び出されたら、 removeEventListener()
ですぐ解除しています。
one(document.querySelector('.selector'), 'click', function(event) {
});
jQueryと同じように使うことができます。
CSS本執筆しました!!!
CSS本出します!1/29発売予定
— たかもそ@CSS本1/29発売!! (@takamosoo) 2018年12月31日
自分がCSS学びたての頃にもっとはやく知りたかったテクニックを載せています。CSSの基礎知識について解説していないので、中級者〜向けとなります。CSS入門書を読んではみたものの、思い通りに作れない人にオススメです。
よろしくお願いします。https://t.co/fkz1dM03Pj pic.twitter.com/suYyaPqwIs