2009-02-20 71 views
0

我有一個簡單的HTML頁面,看起來像這樣:的JavaScript/jQuery的問題7

...<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」存在,但它永遠不會被調用。我試圖用「onclick」替換「onmouseup」 - 同樣的問題...

回答

7

您不應該對任何東西使用JavaScript僞協議。

這應該工作:

function DoHello() 
{ 
    $("div#main a") 
     .text("Click here!") 
     .mouseup(function(){ 
      alert('Hello!'); 
     }); 
} 
5

不要使用expando事件,請使用jQuery!

$("div#main a").mouseup(function(){ alert('Hello!') }); 
3

而不是添加像你爲什麼不只是使用jQuery的方法,像這樣的onmouseup事件:

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

應該工作:)更多信息退房 - http://docs.jquery.com/Events/mouseup

1

您應該使用bind這樣的功能:

function DoHello(){ 
$("div#main a").bind("mouseup", function(e){ 
    alert("Hello!"); 
}); 
}