Javascript 通过单击模态iframe关闭对话框?
我正在创建一个模态对话框。首先,我将iframe附加到Javascript 通过单击模态iframe关闭对话框?,javascript,jquery,iframe,dialog,modal-dialog,Javascript,Jquery,Iframe,Dialog,Modal Dialog,我正在创建一个模态对话框。首先,我将iframe附加到body标记以充当覆盖 <div class="modal-screen"> <iframe src="javascript:false;"></iframe> </div> 现在,我想在用户单击覆盖时关闭对话框。问题是我似乎无法绑定到任何与覆盖相关的事件 总结一下我的JS,我的对话框视图基本上有一个initialize方法,其中准备了覆盖: initialize: function()
body
标记以充当覆盖
<div class="modal-screen">
<iframe src="javascript:false;"></iframe>
</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");
}
}
modal不是一个单独的元素,而是一个DOM对象,这就是为什么不能在它上面绑定任何东西。请尝试绑定$('.modal screen',this.modal)。这里没有理由使用iframe。只需构造一个,然后在单击时将其删除。绑定到
this.modal.find('.modal screen')
应该与您所说的相同,对吗?除了iframe
之外,我似乎在这个.modal中找不到任何东西。记录this.modal.find('*')
为我提供了iframe元素。我似乎无法将事件绑定到它,也无法获取其中的任何元素。我在书中读到,最好使用iframe。然而,你建议的解决方案似乎很有效,所以我会一直坚持下去,直到我有更好的理由不这么做。
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");
}
}
render: function() {
$('body').append(this.modal);
// append other dialog content
this
}