绑定window事件以后点击会触发多次事件

来源:2-13 生命周期函数使用实例

CaNg_7

2019-08-31 14:35:04

import React, { Component } from 'react';

class Counter extends Component {

handleClick() {

window.addEventListener('click', () => {

console.log('window click');

});

}

render() {

return <div onClick={this.handleClick.bind(this)}>Hello Word</div>;

}

}

export default Counter;

http://img.mukewang.com/climg/5d6a1512000180c905400504.jpg

写回答

1回答

好帮手慕夭夭

2019-08-31

你好同学,因为给元素绑定了点击事件,事件触发了一个handleClick。但是handleClick执行的内容是给window绑定了一个事件。所以点击一次,就会绑定一次事件。addEventListener添加事件不会把之前的相同类型的事件给覆盖,所以点击几次,window就会绑定几次点击事件哦。

http://img.mukewang.com/climg/5d6a22690001fd3007950379.jpg

可以直接把如下注释代码去掉:

http://img.mukewang.com/climg/5d6a24ab0001f7fd06380187.jpg

或者改为如下,不要给window添加事件,而是直接给window绑定点击事件。这样当点击的时候,是触发window自己的事件,而不是添加新的事件。

http://img.mukewang.com/climg/5d6a251b0001cc0906350331.jpg

祝学习愉快,望采纳。

0

0 学习 · 10739 问题

查看课程