0

次のような単純な HTML ページがあります。

...<div id="main">
    <a href="#">Click here!</a>
</div>...

ヘッダーに次のような jQuery JavaScript があります。

   <script type="text/javascript">
    $(document).ready(function() {
        DoHello();
    });

    function DoHello()
    {   
        $("div#main a").text("Click here!");
        $("div#main a").attr("onmouseup", "javascript:alert('Hello!');");
    }
</script>

FireFox で HTML リンクをクリックすると、「Hello!」というアラートが表示されます。これが IE7/8 で機能しないのはなぜですか?

IE で (動的に) ビルド DOM を見ると、「onmouseup」が存在することがわかりますが、呼び出されることはありません。「onmouseup」を「onclick」に置き換えてみました-同じ問題...

4

4 に答える 4

7

JavaScript 疑似プロトコルを何にも使用しないでください。

これはうまくいくはずです:

function DoHello()
{   
    $("div#main a")
        .text("Click here!")
        .mouseup(function(){
             alert('Hello!');
        });
}
于 2009-02-20T12:39:23.693 に答える
5

expando イベントを使用しないでください。jQuery を使用してください。

$("div#main a").mouseup(function(){ alert('Hello!') });
于 2009-02-20T12:39:17.220 に答える
3

そのような onmouseup イベントを追加する代わりに、次のように jQuery メソッドを使用しないでください:

$("div#main a").mouseup(function() {
   alert("hello");
});

動作するはずです:)詳細については、 http ://docs.jquery.com/Events/mouseupをご覧ください

于 2009-02-20T12:40:58.557 に答える
1

次のようにbind関数を使用する必要があります。

function DoHello(){
$("div#main a").bind("mouseup", function(e){
    alert("Hello!");
});
}
于 2009-02-20T12:42:42.000 に答える