2016-07-12 2 views
0

クリックしたソースウィジェットを取得して、そこからドロップダウンしたtooltipdialogを表示する方法はありますか?tooltipdialogの親ウィジェットを特定する方法は? - (Dojo 1.10+)

私の目標は、親ウィジェットを削除するために使用できるボタンをtooltipdialogに持つことです。

だから、私は、ダイアログを開いて、私はボタンをクリックした後

deleteWidget: function (evt) { 

     var thisDialog = this; 

     //do the delete 
    }, 

を削除し、私は私の機能を持っているこの

<input type="button" value="Delete" data-dojo-attach-event="click: delete" /> 

とウィジェットのように1つのブトンとtooltipdialogにウィジェットを配置デバッガではイベント「evt」と「this」を検査しますが、クリックしたソースウィジェットを示すプロパティとメソッドのリストでは何も見つかりません。

+0

dojoビルドツールでアプリケーションをビルドするときにバグが発生する可能性があるので、私はあなたのJavaスクリプトで 'delete'のような予約されたキーワードの使用を避けてみることをお勧めします。 – GibboK

+0

@GibboKありがとう、私はそれを変更しました。 – sjs

答えて

0

通常、イベントのコンテキストはウィジェットのコンテキストとは異なります。だから、あなたが必要とするものを達成する最良の選択肢は、コードにイベントを添付し、lang.hitchを使ってコンテキストを変更することです。以下はスケルトンコードです。ここ

使用データ・道場アタッチポイントの代わりに

<input type="button" value="Delete" data-dojo-attach-point="deletebtn" /> 

モジュール

define(.... 
    ... 
    postCreate: function(){ 
     on(this.deletebtn, 'click', lang.hitch(this, "delete")); 
     .... 
    } 

    delete:function(){ 
     //here this is the widget/module. 
    } 
} 

UPDATE:あなたはTooltipDialog

の内容を設定している場合は道場は、アタッチポイントが機能しない場合があります
+0

これはツールヒントを起動したウィジェットにどのようにアクセスできるかわかりません。コンテキストにかかわらず私が得ることができるのは、ツールチップオブジェクトそのものであり、コード内でさえもアタッチポイントを使用してトリガすることさえあります。 – sjs

+0

ボタンのクリックイベントを聞いているモジュール内でツールチップを開始するかどうかによって異なります。それ以外の場合はhttp://jsbin.com/xawajatase/20/edit?html,outputをご覧ください。主な考え方は、クリックイベントのコンテキストを必要なウィジェットに変更することです。 –

関連する問題