<div data-win-control="WinJS.UI.Menu">実際の利用例を下のリスト欄に掲載しておきます。ここでは、チェックをON/OFFするトグルタイプのメニュー項目とセパレーターも入れてみました。それぞれのボタンのタグを見てみましょう。
<button data-win-control=
"WinJS.UI.MenuCommand">
……必要なだけ用意……
</div>
<button data-win-control="WinJS.UI.MenuCommand"これは、アプリバーのところで使った<button>タグとほとんど同じですね。AppBarCommandがMenuCommandに変わっているだけです。data-win-options属性には、表示するテキストを示すlabelと、sectionの指定をしてあります。
data-win-options="{label:'表示テキスト', section:'global'}"></button>
<button data-win-control="WinJS.UI.MenuCommand"</button>トグルタイプのメニューは、選ぶとメニュー項目の左側にチェックマークをON/OFFすることができます。これはdata-win-options属性に、「type:'toggle'」という値を用意します。これでトグルタイプのメニューとして表示されるようになります。チェックのON/OFFは、同様にdata-win-optionsに「selected」という項目で用意します。これがtrueならばチェックはONになります。
data-win-options="{label:'Second Item', type:'toggle', selected:'true',
section:'global'}">
var sel = event.target.winControl.selected;イベント用の関数では引数にeventオブジェクトが渡され、そのtargetでイベントの発生したDOMオブジェクトが得られます。そのwinControl.selectedを取得すればチェック状態がわかる、というわけです。
<hr data-win-control="WinJS.UI.MenuCommand"セパレーター(メニュー項目の間に表示される仕切り)は、data-win-options属性の中に「type:'separator'」という値を用意します。これでセパレーターとして表示されるようになります。注意したいのは、これは<div>タグではなく、<hr />タグを使う、という点でしょう。
data-win-options="{type:'separator', section:'global'}" />
《DOMオブジェクト》.winControl.show( DOMオブジェクト , 表示場所 );メニューの表示は、data-win-control="WinJS.UI.MenuCommand"を設定した<div>タグのDOMオブジェクトからwinControl.showを呼び出します。引数には、表示場所の基準となるDOMオブジェクト(アンカー)と、表示場所を示す値("top", "bottom", "right", "left")を指定します。これは、フライアウトを表示する時と同じですね。
※リストが表示されない場合
AddBlockなどの広告ブロックツールがONになっているとリストなどが表示されない場合があります。これらのツールをOFFにしてみてください。
※default.htmlへの追記 <div data-win-control="WinJS.UI.Menu" id="menu1"> <button data-win-control="WinJS.UI.MenuCommand" data-win-options="{label:'First Item', section:'global'}"></button> <button data-win-control="WinJS.UI.MenuCommand" data-win-options="{label:'Second Item', tye:'toggle', selected:'true', section:'global'}"></button> <hr data-win-control="WinJS.UI.MenuCommand" data-win-options="{type:'separator', section:'global'}" /> <button data-win-control="WinJS.UI.MenuCommand" data-win-options="{label:'Last Item', section:'global'}"></button> </div> ※app.onactivatedに用意する記述 app.onactivated = function (args) { if (args.detail.kind === activation.ActivationKind.launch) { if (args.detail.previousExecutionState !== activation. ApplicationExecutionState.terminated) {} else {} args.setPromise(WinJS.UI.processAll().then(function completed() { var button1 = document.getElementById("button1"); button1.addEventListener("click", button1Click, false); var tgglbtn1 = document.getElementById("togglebtn1"); tgglbtn1.addEventListener("click", tgglbtn1Click, false); })); } } ※イベント処理用関数 function button1Click(event) { document.getElementById("menu1").winControl.show(event.target, "bottom"); } function tgglbtn1Click(event) { var sel = event.target.winControl.selected; ……処理を用意…… }
<< 前へ | 次へ >> |