我已經創建了一個JSFiddle來描述該問題。爲什麼當我撥打doSomething()
功能時不顯示警報?爲什麼不調用javascript onclick函數?
0
A
回答
4
1
5
這是因爲doSomething()
功能沒有在HTML頁面中定義。在jsfiddle中,您的函數(在js窗格中)由jquery的文檔onload事件封裝。 (請參閱jsfiddle左側的設置)。所以其執行的這個樣子,
$(document).ready(function() {
function doSomething() {
alert('Hello!');
}
});
瞭解其包裹。它不可訪問。要修復它,您應該將其分配給window
對象。 在JS窗格寫成
window.doSomething=function() {
alert('Hello!');
}
它會工作
其建議大家不要使用HTML元素的屬性onclick
功能。它更好地分配事件處理程序與JS。
$("img").click(function(){
alert("Hello");
});
+0
對於臨時投票表示抱歉,SO在我的手機上顯得很奇怪。 – 11684
4
這是一個 「小提琴-事」。從「Choose Framework」字段中的第一個選擇中選取nowrap (head)
。
3
JsFiddle爲您做的是爲您創建<HTML>
,<head>
和<body>
標籤。您不應該將它們包含在您的HTML中,因爲這會在JsFiddle處理完標記後無效。它還將JS包裝在文檔的onload事件中。因此,您的功能沒有像您想象的那樣在根範圍內定義,但在document.onload
函數的範圍內,並且您無法從主體範圍內訪問它,因爲那不在函數內部。我將JsFiddle屬性'wrap in'改爲'no wrap(head)',它工作正常。
0
以下是您的完整代碼。只需複製並粘貼您的編輯器。它是
<!doctype html>
<html lang='en'>
<head>
<meta charset='utf-8'>
<title>Javascript Events</title>
<script type='text/javascript'>
window.onload = function() {
var image_one = document.getElementById('imageOne');
var image_two = document.getElementById('imageTwo');
image_one.onclick = function() {
alert('Hello!');
}
image_two.onclick = function() {
alert('Hello!');
}
}
</script>
</head>
<body>
<img id="imageOne" src="http://upload.wikimedia.org/wikipedia/commons/thumb/0/0c/White_and_yellow_flower.JPG/320px-White_and_yellow_flower.JPG" />
<img id="imageTwo" src="http://upload.wikimedia.org/wikipedia/en/7/70/Example.png" />
</body>
</html>
相關問題
- 1. Javascript:爲什麼我的函數沒有被onclick調用?
- 2. ASP.NET調用JavaScript函數OnClick
- 3. Javascript innerHTML調用onclick函數
- 4. cfselect onClick不調用javascript函數
- 5. 的onclick不斷調用javascript函數
- 6. javascript onclick不能調用函數
- 7. onclick操作不調用javascript函數
- 8. JSF CommandButton onclick不會調用Javascript函數
- 9. Javascript,爲什麼我的onclick函數不能正常工作
- 10. onClick函數調用不起作用 - 我做錯了什麼?
- 11. 爲什麼調用函數比不調用函數更快?
- 12. 爲什麼這不onclick JavaScript調用工作?
- 13. 爲什麼不調用UtteranceProgressListener的函數?
- 14. 爲什麼不調用這個函數?
- 15. 爲什麼不調用析構函數?
- 16. 使用OnClick進行JavaScript函數調用
- 17. 調用JavaScript函數使用的 'onClick'
- 18. JavaScript即時函數調用 - 爲什麼函數需要括號?
- 19. 爲什麼邊界不改變時調用函數的JavaScript?
- 20. 爲什麼不是我的javascript函數沒有被調用
- 21. 爲什麼JavaScript函數不能在xslt中調用?
- 22. 爲什麼不工作? Onclick javascript
- 23. javascript函數作爲參數 - 非法調用。爲什麼?
- 24. 通過JavaScript調用onClick函數
- 25. Javascript函數沒有被調用onclick?
- 26. Onclick函數未在JavaScript中調用
- 27. 在onClick中調用javascript函數
- 28. 的JavaScript的onclick調用函數
- 29. Javascript函數未被onclick調用
- 30. 爲什麼函數調用稱爲「函數調用」?
學習了JSFiddle的一些... – JVerstry