[英]Click event on button doesn't seem to fire
盡管我不經常使用HTML或JavaScript,但我並不陌生。 但是,我對PHP還是很陌生,並且在嘗試獲取嵌入在PHP中的HTML中的按鈕上的click事件時,當前面臨一個奇怪的問題:
<!DOCTYPE html> <html lang="de"> <head> <title>Blah</title> <meta charset="utf-8"> </head> <body> <button type="button" onclick="function() { alert('Moo!'); }">Some button</button> </body> </html>
當我單擊按鈕時,什么也沒有發生。 是的,原件中當然會有更多標記,但這與我的問題無關。 W3C標記驗證服務表示沒有錯誤,並且當我從body標簽底部的腳本中警告moo時,它也可以正常工作。 看來click事件沒有觸發...知道為什么嗎?
這是因為您定義了一個函數而不執行它。 不要將其包裝在函數中。
onclick="alert('Moo!');"
如果將其包裝在函數中。 您將需要執行它。
onclick="(function() { alert('Moo!'); })()"
問題是您的匿名函數語法。 您正在使用函數定義,但沒有立即調用它或給它命名,因此瀏覽器與它沒有任何關系。
如果您希望單擊后立即調用它,則可以嘗試重寫按鈕部分,如下所示:
<button type="button" onclick="(function() { alert('Moo!'); })();">Some button</button>
但我個人的喜好是將其寫入命名函數,然后將其稱為處理程序。
內聯事件處理程序中不能包含匿名函數-使用alert("Moo")
<!DOCTYPE html> <html lang="de"> <head> <title>Blah</title> <meta charset="utf-8"> </head> <body> <button type="button" onclick="alert('Moo!')">Some button</button> </body> </html>
您還可以使用命名函數:
function moo() { alert("Moo!"); }
<!DOCTYPE html> <html lang="de"> <head> <title>Blah</title> <meta charset="utf-8"> </head> <body> <button type="button" onclick="moo()">Some button</button> </body> </html>
甚至是IIFE:
<!DOCTYPE html> <html lang="de"> <head> <title>Blah</title> <meta charset="utf-8"> </head> <body> <button type="button" onclick="(function() { alert('Moo!'); })()">Some button</button> </body> </html>
您可以通過3種方式在onclick
屬性中綁定動作:
<button type="button" onclick="alert('Moo!');">Some button</button>
<button type="button" onclick="someFunc()">Some button</button>
<button type="button" onclick="(function() { alert('Moo!'); })()">Some button</button>
`
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.