我將小部件添加到可在此link處找到的ERSI地圖查看器項目中。Dojo - 監聽控件中的DOM dijit /表單/按鈕單擊事件
所以我用dijit/form/button做了一個查詢小部件,並且想實現一個dojo/on事件監聽器來監聽它的click事件。
該按鈕在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);
});
我收到一個類型錯誤:_526是空值。該錯誤似乎可以忽略不計,因爲我知道我做錯了。除了上面的代碼,我已經嘗試了幾十個,沒有任何工作。
我找到的所有示例dojo/on都沒有顯示如何執行此特定應用程序。
我對dojo很陌生,我只在這個項目上,直到我可以解決另一個同事遇到的問題,但是如果任何人都可以給我一個示例或鏈接到一個示例,顯示如何聽一個小部件內的DOM dijit事件將不勝感激。
ANSWER更新的代碼之後:
我改變了代碼一點,如果旁邊的人覺得有用:
on(this.submitButton, 'click', lang.hitch(this, 'execute'));
在哪裏執行是上市前同樣的功能,反而使這條線有點清潔。
嗨,感謝您的評論。發佈問題時,這是我的錯誤。該代碼實際上使用了您突出顯示的正確的html代碼。更新了問題以反映這一點。 –
更新了我的答案。 –
你是對的,它是一個模板化的小部件,可以在WidgetsInTemplateMixin中混合使用。你的答案是現貨,並且工作得很好。感謝您的解釋。 –