当设备视口大于指定大小时禁用onClick事件[重复]

Posted

技术标签:

【中文标题】当设备视口大于指定大小时禁用onClick事件[重复]【英文标题】:Disable onClick event when device viewport is larger than a specified size [duplicate] 【发布时间】:2021-04-15 04:22:08 【问题描述】:

我在这里有一个导航组件,它可以切换一个 onClick 类

import React from "react";

//COMPONENTS

import Navlinks from './Navlinks';

class Navigation extends React.Component 
  constructor(props) 
    super(props);
    this.state = addClass: false
  
  toggle() 
    setTimeout(() => 
      this.setState(addClass: !this.state.addClass);
    , 200);
  
  render() 
    let navClass = ["nav"];
    if(this.state.addClass) 
      navClass.push('open');
    
    return(
        <div className=navClass.join(' ') onClick=this.toggle.bind(this)>
          <div className="icon"></div>
          <Navlinks onClick=this.props.onClick/>
        </div>       
    );
  

export default Navigation;

当设备视口大于特定大小时,我是否可以通过某种方式禁用 onClick 事件?

【问题讨论】:

一个简单的方法是在 onClick 处理程序中 check the viewport size 并在视口大于指定大小时返回。 【参考方案1】:

这有帮助吗:我正在使用window.innerWidth 检查视口的宽度并根据条件相应地设置onClick

import React from "react";
import "./styles.css";

class App extends React.Component 
  constructor(props) 
    super(props);
    this.state =  addClass: false, vw: window.innerWidth ;
  
  toggle() 
    console.log("Toggle Method");
  

  notToggle() 
    console.log("Not Toggling");
  
  render() 
    return (
      <div
        onClick=
          this.vw > 800 ? this.toggle.bind(this) : this.notToggle.bind(this)
        
      >
        <div className="icon">Hellow Hellow</div>
      </div>
    );
  


export default App;

【讨论】:

以上是关于当设备视口大于指定大小时禁用onClick事件[重复]的主要内容,如果未能解决你的问题,请参考以下文章

在特定视口宽度处禁用 Owl Carousel

Bootstrap 栅格布局的使用

仍在应用移动设备悬停状态上元素上的onClick事件

移动电子邮件启动 + 用于重定向的 onclick 事件

此视口大小范围之间的任何移动设备?

视口大于 maxwidth 时 SingleChildScrollView 渲染溢出