私は、ドキュメントの要素にコンテキストメニューを添付することになっているjavascriptを書いています。コンテキストメニューのjqueryプラグインには、コンテキストメニューのidとオプションオブジェクトが必要です。オプションオブジェクトには、キーがメニュー項目のIDで、値がクリック時に呼び出されるキー/値ペアを持つべきbindingsというプロパティがあります。JavaScriptでブラケット表記を使用してオブジェクトに関数を添付するにはどうすればよいですか?
問題は、私が入れようとしているバインディングオブジェクトは、ブラケット概念を使用するときに値として関数をアタッチしないため、メニュー項目のIDを事前に決定できないためです。
var bindings = {};
var bindingsFunction = function(t){
alert('Trigger was ' + t.id + '\nAction was Open');
};
var $listItems = $contextMenu.find('li');
$listItems.each(function(index, item){
var key = '' + item.id;
bindings[key] = bindingsFunction;
});
console.log('bindings is empty', bindings);
var result = $icon.contextMenu(contextMenuId, {
bindings: bindings
});
はい、スクリプトから削除したconsole.logは、IDとバインド[id] = idが表示されました。 – Azder
空の文字列は完全に有効なプロパティ名です。ドット表記ではアクセスできません。 –