0

我正在创建一个模式对话框。首先,我将 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
}
4

2 回答 2

0

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

于 2012-04-13T13:16:15.453 回答
0

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

于 2012-04-13T13:27:36.477 回答