有關jsp中onclick事件無效的原因,以及jsp中頁面載入順序的問題
阿新 • • 發佈:2018-12-06
今天在寫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()函式寫在
只需要把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程式碼塊(或檔案)進行掃描,如果遇到定義式函式,則進行預處理,處理完成之後再開始由上至下執行;遇到賦值式函式,則只是將函式賦給一個變數,不進行預處理,待呼叫到的時候才進行處理。