0

我有一个包含用 JQueryUI 定义的对话框的 aspx 页面

$('#dialog').dialog({
    modal: true,
    autoOpen: false,
    minWidth: 500,
    title: 'my dialog',
    buttons: { Finished: function() { $(this).dialog("close"); }
    }
});

在页面内我有一个按钮应该打开对话框

<button class="button" id="dialogLoader">Open</button>

打开对话框的 JavaScript 是

$('#dialogLoader').live('click', function(event) {
    event.preventDefault();
    $('#dialog').dialog("open");
    loadDialogContent();
});

在 Chrome Firefox 等中一切都很好,但 IE9 不加载对话框,即使在调试时所有代码似乎都可以正常执行。

有任何想法吗

更新

仍然有这个问题我已经更新了上面的代码以表明我现在正在使用 preventDefault(); 我认为这是问题的原因(如果问题确实是事件冒泡)。但如果这是纯 HTML,我仍然无法解决这个问题,但我担心 ASP 的参与会导致渲染出现一些不规则性,不幸的是没有返回错误。

更新

此按钮位于 JQueryUI 选项卡中的事实是否会导致 IE9 中的问题?

4

1 回答 1

2

当你写你的调试信息是干净的,这只是一个想法。我希望这会有所帮助。资源管理器的附加事件。

var button = document.getElementById('dialogLoader');
if (button.addEventListener) {
    button.addEventListener('click', function() {
        //action
    }, true);
} else if (button.attachEvent) {
    button.attachEvent('click', function() {
        //action
    }, true);
}
于 2012-04-30T07:25:55.740 回答