猿问

js中可不可以设置 当键盘事件触发时,鼠标事件失效?

详情:

有这么一个网页, 可以键盘up和down来切换 选中行,也可以使用鼠标来选择。

但是当我鼠标在页面上时,如果再使用键盘,down到最后一行,我默认事件是当最后一行时,选中调回第一条,

但是由于鼠标在页面上,跳到第一条的过程在,会触发 onmouseenter事件,导致直接跳到了我鼠标在的那一行,有没有什么办法 解决一下?


问题: 鼠标在页面时,页面下拉框(ul-li)改变触发 onmouseover,如何禁止,或修改?


自问自答一下, 免得有兄弟遇到同样的问题


我增加了一个判断和定时器,由于是使用react,所以直接用state来实现,大致


disableMouseOverAWhile = () => {

    this.setState({

      mouseover: false

    });


    this.timer && clearTimeout(this.timer);

    this.timer = setTimeout(() => {

      this.setState({mouseover: true});

    }, 123)

  }

键盘事件时,顺便触发这个。

然后 鼠标移动事件先判断this.state.mouseover值,再选择是否触发。


慕姐8265434
浏览 759回答 1
1回答

收到一只叮咚

$.off 就取消事件了。如果只是针对你说的情况,跳第一条前取消,跳完之后再绑定。当然,你说的这个效果的实现,要想“完美”,确实是有很多细节要处理的。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答