簡體   English   中英

為什么我不能 setAttribute('onclick', function() { ... })?

[英]Why can I not setAttribute('onclick', function() { … })?

我試過這個:

<div id="a">A</div>
<div id="b">B</div>
<script>
let a = document.getElementById('a');
let b = document.getElementById('b');
a.onclick = function() { alert('hi from a'); };
b.setAttribute('onclick', function() { alert('hi from b'); });
</script>

單擊 A 會顯示一個警報。 單擊 B 會發出此錯誤消息: Uncaught SyntaxError: Function statements require a function name 為什么?

https://codepen.io/issactrotts/pen/yLYEXKZ

屬性值是字符串,而不是函數。

請改用addEventListener

顯示此錯誤是因為 setAttribute 只獲取字符串而不是 function

如果您想添加應該使用的事件,您的代碼不正確

b.onclick = function(){};

或者

b.addEventListener("click",function(){});

但是如果你想設置 onclick 屬性你不能設置 function 你可以使用這個

function bclick() { alert("hi from b"); }
b.setAttribute("onclick", "bclick()");

或者你可以使用 toString()

b.setAttribute("onclick", (function(){alert("hi from b");}).toString());

但是當我點擊那個沒有做的時候,因為它只是存在 function 沒有運行

您可以在值中使用字符串

b.setAttribute("onclick", 'alert("hi from b")';

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM