【发布时间】:2013-09-02 09:16:03
【问题描述】:
请看下面的更新
这是我的代码:
$(document).on('click', '#btnClose, .ui-dialog-titlebar-close', function () {
alert('test');
});
当我点击#btnClose 时它会触发,但不会触发右上角的 jQuery UI 关闭按钮。
我也尝试过翻转它,我得到了相同的结果。
$(document).on('click', '.ui-dialog-titlebar-close, #btnClose', function () {});
这是 jQuery UI 关闭按钮的 HTML:
<button class="ui-button ui-widget ui-state-default ui-corner-all ui-button-icon-only ui-dialog-titlebar-close" role="button" aria-disabled="false" title="close">
<span class="ui-button-icon-primary ui-icon ui-icon-close"></span>
<span class="ui-button-text">close</span>
</button>
更新按钮在 iframe 中。这一定是问题所在。有什么创意吗?
这是我目前拥有的:
function closeDialog() {
alert('Closing');
//this works fine
}
$(document).on('click', '#btnClose', function () {
closeDialog()
//this never fires
});
window.parent.$(document).on('click', '.ui-dialog-titlebar-close', function () {
closeDialog();
});
第二个仍然不工作。请记住,脚本是 iFrame 的一部分,因此它需要从父级访问选择器。奇怪的是我正在使用 window.parent.$() 做其他事情没有问题。
【问题讨论】:
-
你能更新这个小提琴来重现你的错误吗? jsfiddle.net/Us7R9
-
显然不行,它工作正常...jsfiddle.net/Us7R9/2
-
一定是因为modal的内容是iframe。我试图让小提琴反映这个问题,但我无法将本地 div 加载到 iframe 中......jsfiddle.net/Us7R9/5
标签: jquery jquery-ui iframe jquery-selectors