我想让一个按钮使用onclick处理程序,将调用函数之前任何触发。
在React中我可以这样做
<button onClick={clickHandler()}></button>
是否有可能在纯Javascript中做同样的事情?
是的,函数必须返回另一个。
let button = /* your button */;
button.addEventListener('click', (function(){
/* logic before any trigger */
return function(){
/* logic for every trigger */
}
})());
或者,在附加处理程序之前运行任何代码:
let button = /* your button */;
/* logic before any trigger */
button.addEventListener('click', function(){
/* logic for every trigger */
});
两个场景的逻辑相同:
let button = /* your button */;
function myButtonLogic(){
/* logic for everything */
}
myButtonLogic();
button.addEventListener('click', myButtonLogic);