このリンクにある ERSI マップ ビューアー プロジェクトにウィジェットを追加しています。
そこで、dijit/form/button を使用してクエリ ウィジェットを作成し、そのクリック イベントをリッスンする dojo/on イベント リスナーを実装したいと考えています。
ボタンは、html マークアップで次のように宣言されます。
<button data-dojo-type="dijit.form.Button" id="searchButton" type="button">Submit</button>
私の JavaScript 内では、postCreate 関数の最後に次のものがあります。
on(dojo.byId("searchButton"), "click", function execute() {
// Set the WHERE search text
this.findParams.searchText = dojo.byId("searchText").value;
// Sends a request to the ArcGIS REST map service resource to perform a search based
// on the FindParameters specified in the findParameters argument. On completion, the
// onComplete event is fired and the optional callback function is invoked.
this.findTask.execute(this.findParams, this.showResults, this.showError);
});
TypeError: _526 is null が発生しました。私はこれを間違ってやっていることがわかっているので、エラーは無視できるようです。上記のコードとは別に、他にも何十もの試しましたが、何も機能しませんでした。
また、 dojo/on で見つけたすべての例は、この特定のアプリケーションの実行方法を示していません。
私は道場にかなり慣れていないので、別の同僚が抱えているいくつかの問題を解決できるようになるまで、このプロジェクトに参加していますが、誰かが例を示したり、DOM dijit イベントをリッスンする方法を示す例へのリンクを示したりすることができればウィジェット内で大歓迎です。
回答後の更新コード:
次の人が役立つ場合は、コードを少し変更しました。
on(this.submitButton, 'click', lang.hitch(this, 'execute'));
execute は前にリストしたのと同じ関数ですが、この行を少しきれいにするためです。