【问题标题】:Jquery Message working on IE 8 and not working on IE9Jquery Message 在 IE 8 上工作但在 IE9 上不工作
【发布时间】:2013-08-03 03:18:15
【问题描述】:

代码隐藏,VB.Net

btnNext.Attributes.Add("onclick", "Confirmation(this,'" +  GetLocalResourceObject("msg").ToString() + "')")

.ASPX 页面

    function Confirmation(source, msg) {
    $(source).easyconfirm({ locale: { title: 'Confirm',  text: msg} });
    $(source).click(function() {
        var result = $(source).attr('tag');
        $('#<%=hidField.ClientID%>').val(result);
    });
}

jQuery 版本 jquery-1.4.4.min.js jquery-ui-1.8.7.min.js

除此之外,我正在使用 jquery.easy-confirm-dialog 来显示此消息框 [是/否]。 jquery.easy-confirm-dialog : http://www.projectshadowlight.org/jquery-easy-confirm-dialog/

hidField : 参考上面asp页面的代码

在 IE 8 上: 会显示消息框,并根据我点击的内容将我带到相应的页面。 [是/否]。 hidField 在后面的代码中用于获取是/否响应并显示相应的页面。这在 IE8 中完美运行

在 IE 9 上: 消息框不会显示,它会将我带到一个页面,就好像我点击了否一样。 hidField 值为零表示否。所以如果没有设置任何值,它会认为我点击了 no 并执行它的代码。

我在 IE9 上对其进行了调试,我发现 [仅在调试时] 会显示消息,但它不会停止代码的执行并等待用户响应然后继续前进。它在显示消息时继续执行[调试模式,所以我能够看到它]。由于 hidField 的默认值为 0,它会重定向到相应的页面。

可能发生这种情况的任何建议/原因。除了我上面提到的还有其他原因吗? 任何可能的解决方案

更多信息: 我在 IE8 上运行 Profiler [F12 IE] 并在消息框出现后立即停止它,它显示 event.stopImmediatePropagation 被调用。

虽然在 IE9 event.stopImmediatePropagation 不是他们在探查器中。我已调试,并且在 jquery.easy-confirm-dialog.js 文件中 IE9 event.stopImmediatePropagation 不可用,显示为未定义。

我从 1.8.2 [早期 1.4.4] 添加了更高版本的 Jquery,但问题仍然是他们的。

【问题讨论】:

  • 浏览器控制台中是否有任何错误消息? (IE8 或 IE9)
  • 没有错误信息

标签: javascript asp.net jquery internet-explorer-8 internet-explorer-9


【解决方案1】:

我不知道你为什么会遇到这个问题,我已经用 IE9 尝试了http://www.projectshadowlight.org/jquery-easy-confirm-dialog/ 上的示例,它们按预期工作。但是,您对插件接缝的使用有点奇怪,当与 jQuery 绑定事件一起使用时,简单的确认对话框会发挥它的魔力。不像您的示例中那样直接从点击事件中调用。我建议将您的所有逻辑都移到像这样的 jQuery 绑定事件中(伪代码)

btnNext.Attributes.Add("class", "confirmation");
btnNext.Attributes.Add("title", GetLocalResourceObject("msg").ToString());

并将其放在标题中某处的脚本标记中

$(".confirmation").easyconfirm();
$(".confirmation").click(function() {
    var result = $(this).attr('tag');
    $('#<%=hidField.ClientID%>').val(result);
});

或者创建一个显示确认对话框的自定义函数

function Confirmation(source, msg) {
    var dialog = '<div class="dialog confirm">' + msg + '</div>';
    var buttons = {};
    buttons['Yes'] = function() {
        $(this).dialog('close');
        var result = $(source).attr('tag');
        $('#<%=hidField.ClientID%>').val(result);
    };
    buttons['No'] = function() {
        $(this).dialog('close');
    };

    $(dialog).dialog({
        autoOpen: true,
        resizable: false,
        draggable: true,
        closeOnEscape: true,
        width: 'auto',
        buttons: buttons,
        title: 'Are you sure?',
        modal: true,
    });
}

【讨论】:

    猜你喜欢
    • 2012-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-16
    • 1970-01-01
    相关资源
    最近更新 更多