【问题标题】:JQueryUI Dialog IE9 not openingJQueryUI Dialog IE9 未打开
【发布时间】:2012-04-30 07:11:02
【问题描述】:

我有一个包含用 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 中的问题?

【问题讨论】:

  • 对我有用,如果我注释掉对loadDialogContent()的调用:jsfiddle.net/j33JK
  • @TiesonT。是的,我确定这是一个 IE9 asp.net 问题,但如果一切似乎都在执行,那么很难找到确切的问题 lol
  • 你能展示一下loadDialogContent方法吗?

标签: asp.net jquery-ui dialog internet-explorer-9


【解决方案1】:

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

var button = document.getElementById('dialogLoader');
if (button.addEventListener) {
    button.addEventListener('click', function() {
        //action
    }, true);
} else if (button.attachEvent) {
    button.attachEvent('click', function() {
        //action
    }, true);
}

【讨论】:

  • 我已经使用了您的建议并稍作改动我认为如果条件需要成为 addEventListener 和 attachEvent 调用的一部分(如果我错了,请告诉我)并且我得到了 EventListener ,所以我移动了我的执行代码来替换你的 //action 并且仍然没有对所有执行感到高兴?
  • 你说得对。在这种情况下,您在操作部分调用的某些功能可能会导致 IE9 出现问题。很抱歉,这个想法对你不起作用:(
  • 我想我正在进入事件冒泡的领域,这让我很害怕,哈哈
  • 这个按钮在 JQueryUI 选项卡中的事实是否会导致 IE9 出现问题?
  • 也许这可以帮助你一点点:bugs.jqueryui.com/ticket/7548,你可以找到更多关于IE9问题的话题
猜你喜欢
  • 1970-01-01
  • 2011-08-10
  • 1970-01-01
  • 1970-01-01
  • 2019-03-30
  • 1970-01-01
  • 2019-07-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多