![](/img/trans.png)
[英]How can I use document.getElementById(someid).onclick for tag a
[英]can I use document.getElementById(someid).onclick for tag a
我試圖調用一個javascript函數onclick。 我寫過這樣的東西
<script type="text/javascript">
function readPage(){
alert("Hello");
}
document.getElementById('read').onclick=readPage;
</script>
<a id="read" href="">read</a>
我試圖調用readPage函數,但它不起作用?如果我寫onclick里面標簽它的工作原理,但我上面寫的方式不起作用。 為什么?
你是怎么做的,但是什么時候沒有錯。 在加載之前,您無法訪問DOM (like running getElementById())
。 最簡單的方法是在window.onload
運行代碼,如下所示:
window.onload = function () {
document.getElementById("read").onclick=readPage;
};
它將使用一個空的href
屬性(然后將使用頁面的當前URL),但是你必須使用window.onload
來附加點擊處理程序,或者你必須在之后移動script
塊。 a
元素。
否則getElementById
找不到該元素,因為它在DOM樹中尚不存在。
<a id="read" href="">read</a>
<script type="text/javascript">
function readPage(){
alert("Hello");
return false;
}
document.getElementById('read').onclick=readPage;
</script>
如前所述,您使用例如return false;
使瀏覽器不遵循URL。 如果您將URL更改為href="#"
您甚至需要這個,否則瀏覽器會將頁面滾動到頂部。
自己測試一下: http : //jsfiddle.net/Nj4Dh/1/
閱讀有關傳統事件注冊模型的更多信息。
你首先必須禁用錨的默認方向協議(即,不要去一個href)
href="#"
。 event.preventDefault()
函數示例。 你應該有:
<script type="text/javascript">
function readPage(){
alert("Hello");
}
document.getElementById('read').onclick=readPage;
</script>
<a id="read" href="#">read</a>
有兩種方法可以做到(沒有任何瀏覽器特定的功能)。 一個是
<script type="text/javascript">
function stopDefault(e) //cross browser function for stopping default actionw
{
if (e && e.preventDefault)
{
e.preventDefault();
}
else
{
window.event.returnValue = true;
}
return false;
}
function readPage(event){
alert("Hello");
return stopDefault(event);//prevent default action
}
window.onload = function(event){
document.getElementById('read').onclick=readPage;
}
</script>
<a id="read" href="#">read</a>
要么:
<script type="text/javascript">
function stopDefault(e)
{
if (e && e.preventDefault)
{
e.preventDefault();
}
else
{
window.event.returnValue = true;
}
return false;
}
function readPage(event){
alert("Hello");
return stopDefault(event);//prevent default action
}
</script>
<a id="read" href="#" onclick="readPage(event)">read</a>
我已經使用了stopDefault函數sd你需要停止鏈接的默認動作,否則它會嘗試轉到href中的url。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.