簡體   English   中英

我可以使用document.getElementById(someid).onclick標記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)

  1. 在錨點上創建href="#"
  2. 這里檢查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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM