首頁  >  文章  >  後端開發  >  a標籤不能呼叫js方法的問題

a標籤不能呼叫js方法的問題

一个新手
一个新手原創
2017-09-13 09:44:342123瀏覽

在我們做後台刪除的時候,當點擊刪除標籤時,你希望彈出一個友好的提示框!例如這樣:

那程式碼應該怎麼寫呢?向下面這樣?


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <script>
        window.onload=function () {            
            function confirmdelete(id) {                
                return  window.confirm("你确定要删除吗?");
            }
        }    
   </script>
</head>
<body>

</body>
<?php   
echo "<a onclick=&#39;confirmdelete(2)&#39;>删除</a>";?>

你會發現會發生這樣一個錯誤:

該函數沒有被使用?不應該啊,我在php裡面不是已經呼叫了麼?

注意:

想必寫過前端的人都知道這個方法是在頁面全部載入完成之後執行,那麼問題就來了,php的執行順序是先於js的,所以當執行php的時候,發現a標籤裡面的方法並不存在,因為此刻js還沒有被執行,所以就導致了php a標籤調用js的時候沒有反應這種情況了。

那麼程式碼變成這樣呢?


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <script>            
        function confirmdelete(id) {                
        return  window.confirm("你确定要删除吗?");
            }    
   </script>
</head>
<body>
</body>
<?php   
echo "<a onclick=&#39;return confirmdelete(2)&#39;>删除</a>";?>

結果是成功執行!有人說不對啊,你不是說php的執行順序要先於js麼,這跟上面沒什麼差別。

那麼此刻就要注意了,有了window.onload這個方法約束後,該js是最後執行,那麼當去掉這個約束,你會發現這個函數

 只是一個聲明,在js當中,對於只是聲明的函數,它會最先編譯,所以這時候當執行到php的a標籤時,因為它要呼叫的函數已經預先編譯好了,所以就能夠呼叫。

以上是a標籤不能呼叫js方法的問題的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn