问题描述
有人问过类似的问题。但是我为这些问题尝试了所有可能的解决方案,但没有一个奏效。我有一个 dojo 模式,我想同时捕获右上角的关闭事件“X”和“escape”按键事件。下面是我的代码。
<script>
dojo.connect(dojo.byId("myDialog"),"onCancel",function(){
alert("Hi");
});
document.body.addEventListener('keypress',function(e) {
if (e.key == "Escape") {
alert("Hi");
}
});
</script>
<div class="myDialogClass" id="myDialog" name="myDialog" role="dialog" style="display:none" dojoType="dijit/Dialog" closeOnTimeOut="false" parseOnLoad="true" title="Title">
</div>
我尝试了以下所有解决方案,但没有一个奏效
1. dojo.connect(dojo.byId("myDialog"),"onHide"
2. dojo.connect(dojo.byId("myDialog"),"hide"
3. myDialog.connect(myDialog,"hide",function(e){
dijit.byId("user_submit").destroy(); });
4. <script type="dojo/method" event="onClose"> console.log('closed')
</script>*,*<script type="dojo/method" event="onCancel">
console.log('closed') </script>
5. var myDialog = new Dialog({ id: "myDialogId1",onHide:
function() {
myDialog.destroy() }
});
非常感谢任何帮助。
解决方法
我使用下面的代码解决了这个问题。
require(["dojo/on","dojo/ready","dijit/registry"],function(on,ready,registry) {
ready(function() {
var d = dijit.byId("myDialog")
d.on('hide',function() {
console.log('closed');
location.reload();
});
});
});