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 链接时,我会收到一条警报,上面写着“你好!”。为什么这在 IE7/8 中不起作用?

当我在 IE 中查看(动态)构建 DOM 时,我可以看到“onmouseup”存在但从未被调用。我尝试用“onclick”替换“onmouseup” - 同样的问题......

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

您应该像这样使用绑定函数:

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