我知道這有點有趣,因爲人們經常要求解決某些不起作用的解決方案,在這種情況下,情況恰恰相反。爲什麼我的點擊事件處理程序是(YES「is」)工作?
我在玩JavaScript,發現了讓我感到困惑的東西! 我嘗試過在線尋找幫助,但找不到任何有用的主題。
問題是這樣的:在函數bar
只調用一次後,onclick
事件工作正常。這怎麼可能!?
但是,當我問類型的變量x
的返回undefined
,而不是Number
,這是正常的,因爲x
裏面bar
。
function bar() {
var p = document.getElementById("foo");
p.onclick = showAlert;
var x = 5;
alert("bar function was called !");
}
bar();
任何人都可以啓發我究竟發生了什麼,一個詳細的解釋將非常讚賞。
全碼:(的jsfiddle鏈路:https://jsfiddle.net/ge4gj5nw)
<!DOCTYPE html>
<html>
<head>
<style>
#foo {
border: solid blue 1px;
width: 30%;
padding: 10px;
}
</style>
</head>
<body>
<p id="foo">My Event Element</p>
<p>Click on the above element..</p>
</body>
</html>
<script>
function bar() {
var p = document.getElementById("foo");
p.onclick = showAlert;
var x = 5;
alert("bar function was called !");
}
bar();
function showAlert(event) {
alert("onclick Event detected!");
}
</script>
我不很明白你在這裏問的問題。你在問爲什麼事件處理程序被調用?或者給定的範圍如何在這裏工作?或者你問爲什麼showAlert'可用? – Nit
JavaScript是一種垃圾收集語言。變量或對象在未被使用時會被垃圾收集。這是通過查看該變量的執行上下文來完成的。 – liontass
JavaScript中有函數聲明。 – acdcjunior