[英]How to add onclick event to the array of elements
for (let menuname of this.tabsdata[reqmenuitem]) {
content.push(<Anchor className="toblack" onclick={this._fetchTabData(this)}>{menuname.name}</Anchor>);
}
在此_fetchTabData
在頁面呈現后_fetchTabData
觸發,請指導我如何將onclick
偵聽器正確附加到相應的數組元素
在你的情況你調用函數_fetchTabData
(和結果傳遞給onClick
我想你函數返回undefined
這么onClick
你傳遞undefined
),但onClick
你應該通過引用功能,你可以用做arrow function
或.bind
for (let menuname of this.tabsdata[reqmenuitem]) {
content.push(
<Anchor
className="toblack"
onClick={() => { this._fetchTabData(menuname) } }
>
{menuname.name}
</Anchor>
);
}
首先,將_fetchTabData
實現更改為如下所示:
_fetchTabData(menuname) {
return (event) => {
// Do what you need
console.log(menuname);
};
},
然后,這樣稱呼它
for (let menuname of this.tabsdata[reqmenuitem]) {
content.push(<Anchor className="toblack" onclick={this._fetchTabData(menuname)}>{menuname.name}</Anchor>);
}
.getElementById('container').children
----使用parent的.children屬性將元素放入數組中。 .addEventListener(type,function)
的for()
循環遍歷數組 //純JS
<!DOCTYPE html>
<html>
<head>
<script>
click = {
changecolor: (e)=>{
e.target.style.color = "red";
}
};
init = ()=>{
var childs = document.getElementById('container').children;
for(var i=0; i < childs.length; i++){
childs[i].addEventListener('click', click.changecolor);
}
}
document.addEventListener('DOMContentLoaded', init);
</script>
</head>
<body>
<div id="container">
<span>1</span>
<span>2</span>
<span>3</span>
<span>4</span>
</div>
</body>
</html>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.