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

デバッグ情報を書いたので、これは1つのアイデアにすぎません。これが少しお役に立てば幸いです。ExplorerのattachEvent。

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 に答える