我尝试了很多东西,但都没有奏效。我没有在这个项目中使用 react,所以不确定如何在单击按钮时调用 shoesAlert() 函数。请帮忙!!
import '../Nav/nav.styles.scss';
const Nav = () => {
function showAlert(e) {
e.preventDefault();
console.log("I'm an alert");
};
return ( `
<div class='nav'>
<div>
<p>Logo</p>
<button id='btn' onclick="{this.showAlert}"> Click Me</button>
</div>
</div> `);
}
export { Nav };
答案 0 :(得分:0)
创建并返回父 .nav
元素,而不是返回 HTML 字符串。您可以在返回之前将侦听器附加到内部按钮。
const Nav = () => {
function showAlert(e) {
e.preventDefault();
console.log("I'm an alert");
};
const nav = document.createElement('div');
nav.className = 'nav';
nav.innerHTML = `
<div>
<p>Logo</p>
<button id='btn'> Click Me</button>
</div>
`;
nav.querySelector('button').addEventListener('click', showAlert);
return nav;
};
工作片段:
const Nav = () => {
function showAlert(e) {
e.preventDefault();
console.log("I'm an alert");
};
const nav = document.createElement('div');
nav.className = 'nav';
nav.innerHTML = `
<div>
<p>Logo</p>
<button id='btn'> Click Me</button>
</div>
`;
nav.querySelector('button').addEventListener('click', showAlert);
return nav;
};
const nav = Nav();
document.body.appendChild(nav);
showAlert
也是一个独立的标识符,不是任何实例的属性,所以你不需要 this.showAlert
,你只需要 showAlert
。