1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

連想配列に関数を保存して呼び出す

Last updated at Posted at 2021-08-14

キーボードショートカットを実装していて、関数を連想配列に保存して管理したくなった。

#ダメな例
連想配列にそのまま関数を保存すると、読み込み時に実行されてしまう。

dame.js
const sc = {
	s:save(),
	l:load()
};
sc['s']; //save()を呼び出したいけど失敗

#成功例

ok.js
const sc = {
	s:function(){save()},
	l:function(){load()}
};
sc['s'](); //save()が実行される

#ショートカット実装時のtips

shortcut.js
$(function(){
	const sc = {
		s:function(){save()},
		l:function(){load()}
	};
	$(document).on('keydown',function(e){
		if(e.ctrlKey){		//コントロールキー押下判断
			var key= e.key;
			shortcut(e,key);
		};
	});
	function shortcut(e,key){
		if($.isFunction(sc[key])){	//ショートカットが登録されていれば
			sc[key]();		//ショートカットを実行して
			e.preventDefault();	//ブラウザ標準のショートカットをキャンセル
		};
	};
});

#ショートカット実装のための参考リンク

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?