通过单击模式 iframe 关闭对话框

Close a dialog by clicking the modal iframe?

本文关键字:对话框 iframe 模式 单击      更新时间:2023-09-26

我正在创建一个模式对话框。首先,我将 iframe 附加到 body 标记以充当我的覆盖层。

<div class="modal-screen">
  <iframe src="javascript:false;"></iframe>
</div>

然后我将对话框附加到body

<div class="dialog">
  <!-- various dialog related elements
</div>

现在我想在用户单击叠加层时关闭对话框。问题是我似乎无法绑定到与覆盖相关的任何事件。

总结一下我的JS,基本上我的对话框视图有一个initialize的方法,其中准备了覆盖层:

initialize: function() {
  this.modal = $('<div class="modal-screen"><iframe src="javascript:false;"></iframe></div>')
  this.modal.on('click', function(e) {
    // this event never seems to fire
    console.log("hello");
  }
}

然后,我在需要时呈现到页面中。当我单击叠加层时,我从未看到hello..

render: function() {
  $('body').append(this.modal);
  // append other dialog content
  this
}

这里没有理由使用 iframe。只需构造一个叠加div,然后在单击时将其删除。

this.modal不是一个单一的元素,而是一个DOM对象,这就是为什么你不能在上面绑定任何东西。尝试绑定 $('.modal-screen', this.modal)。