2011-01-17 11 views
0

私はDojo 1.5を使用していますが、関数を呼び出すことができるコンテキストメニューを作成しようとしていますmyFunctionイベントと他の引数を渡します。これまでのところ、私は次のコードを持っています:グリッドのコンテキストメニュー項目ハンドラでイベントやその他の引数を渡すにはどうすればいいですか?

<div dojoType="dijit.Menu" id="bankerMenu" style="display: none;"> 
     <div dojoType="dijit.MenuItem" onclick="copyDocuments('bankerFolder');" iconClass="dijitEditorIcon dijitEditorIconCopy">Copy to Client</div> 
      <div dojoType="dijit.PopupMenuItem" onclick="doNothing()" iconClass="dijitEditorIcon dijitEditorIconCopy"> 
       <span><s:text name="CopyTo.label"/></span> 
       <div dojoType="dijit.Menu" id="bigsubmenu"> 
var="distributionList"> 
         <div dojoType="dijit.MenuItem" onclick="myFunction(event,'bankerFolder',1)"><s:property value='distributionListName'/></div> 
       </div> 
      </div> 
    </div> 

しかし、私は関数に渡したい「イベント」を認識していません。

  <div dojoType="dijit.MenuItem" label="Some menu item 2"> 
       <script type="dojo/method" event="onClick" args="evt"> 
        myFunction(evt,'bankerFolder',1); 
       </script> 
      </div> 

しかし、私はそれを簡略化して最初の構文を使いたいと思います。どうやってやるの?

答えて

1

文字通りeventを渡すと、ブラウザ間の不一致が発生する可能性があります。しかし、道場を介して接続されたイベントのため、あなたのためにこれを心配し、onClickが既に引数としてイベントオブジェクトを受け取り、ウィジェットのイベントであることから、次のように逃げることができる必要があります:

<div dojoType="dijit.MenuItem" onClick="myFunction(arguments[0],'bankerFolder',1)"><s:property value='distributionListName'/></div> 

も注意してください首都CはonClickです - ウィジェットイベントは常にラクダケースを使用します。彼らはしばしば類似のDOMイベントにマッピングされますが、実際のDOMイベントではありません。私はあなたが遭遇した問題に基づいて、あなたが首都Cでテストしていた印象を受けます。ここで

が働いアイデア(最初に提供/道場IRCチャンネルにダスティン町によって提案された)の簡単な例です:上記の答えにケンさんのコメントから、次のhttp://jsfiddle.net/xwFC5/5/

+0

ありがとうございます!しかし、私はちょうど私の問題が異なっていることに気づいた。私はdojox.grid.EnhancedGridを持っていて、私はdijit.Menuを作成しました。私が本当に望むのは、ユーザーが右クリックしてMenuItemを選択したときに選択された行を知ることです。私が受け取るイベントはrowIndexを持っていませんが、それはGridによってではなく、MenuItemによって起動されるためです。そのような場合、どうすればrowIndexを取得できますか?ありがとう! –

+0

これを解決するには、最初に 'onCellContextMenu'(または' * ContextMenu'イベントが適切なもの)を接続し、必要な情報をその関数に渡されたイベントオブジェクトから取得し、どこかに格納することが考えられますグリッドインスタンス内、または共通の名前空間内)に移動し、メニューイベントコールバックでそれを取得してクリアします。うん、それは長い道のりですが、うまくいくはずです。 –

0

、私はここで説明したようにこれを把握するために管理しました:http://blue-networks.net/wp/?p=37onCellContextMenuに接続し、関連する情報をイベントから取り出し、グリッドオブジェクトに保存します。

+1

単なるリンクの代わりにコードを投稿してください。リンクが死んでしまった場合、その答えは役に立たなくなります。 – SchmitzIT

関連する問題