1. 程式人生 > >有關jsp中onclick事件無效的原因,以及jsp中頁面載入順序的問題

有關jsp中onclick事件無效的原因,以及jsp中頁面載入順序的問題

今天在寫jsp頁面時遇到一個有關onclick事件無效的問題,在這裡分享一下:

   <body>
  <div>
   <input type="text" id="name"/>
  </div>
  <div id="hint">
   <ul id="ul" >
    <li onclick="voluation();">aa</li>
   </ul>
  </div>
  </body>
     <script type="text/javascript"
>
$(function() { function voluation() { alert("方法被呼叫"); } }); </script>

如上程式碼發現繫結的onclick事件怎麼都不能被觸發,最後發現voluation()函式寫在 (function())調 (function())是在頁面載入完的情況下才會執行裡面的方法,也就是說在onclick事件上繫結的這個函式是不存在的。

只需要把voluation()函式定義到外面就可以了

  <body>
  <div>
   <input type="text" id="name"/>
  </div>
  <div id="hint">
   <ul id="ul" >
    <li onclick="voluation();">aa</li>
   </ul>
  </div>
  </body>
     <script type="text/javascript">
    $(function
() {
}); function voluation() { alert("方法被呼叫"); }
</script>

那麼問題又來了jsp是從上至下執行,為什麼voluation()函式在繫結事件的下面也會被繫結上呢?這是因為頁面載入過程中,瀏覽器會對頁面上或載入的每個js程式碼塊(或檔案)進行掃描,如果遇到定義式函式,則進行預處理,處理完成之後再開始由上至下執行;遇到賦值式函式,則只是將函式賦給一個變數,不進行預處理,待呼叫到的時候才進行處理。