javascript - 将事件类添加到链接(React JS)

标签 javascript jquery reactjs hyperlink

有一个从数组显示菜单的组件

import React from 'react'
import { Link, browserHistory,IndexLink } from 'react-router'

    $( document ).ready(function() {

    $( "ul.tabs li a" ).first().addClass("current");  

    $("li:not(:first-child)").click(function() {
      $( "ul.tabs li a" ).first().removeClass("current"); 
    });

    });

     function Tabs (props) {

        const numbers = props.menuitems;
      const listItems = numbers.map((number) =>
        <li key={number.link} ><Link to={number.link} activeClassName="current" className="tab-link">{number.linkName}</Link></li>
      );
      return (
        <div>
        <ul className="tabs" >{listItems}</ul>
        <div className="tabs-header-stripe"></div>
        </div>
      );

    }
    export default Tabs

我通过 Jquery 将“当前”类添加到第一个元素,问题是当我从另一个页面进入时,类没有添加,但当我刷新页面时它会正常添加。

最佳答案

发生您所说的情况是因为该类已添加到 documentReady 事件中。当您从另一个页面到达时,事件已经被引发,但是下面的代码当然无法找到 dom 元素,因为它不存在于页面中:

$( "ul.tabs li a" ).first()

我可以建议的是避免使用jquery(并从外部react修改dom)并直接在react代码中添加类。 我猜你想做这样的事情:

 import React from 'react'
 import { Link, browserHistory,IndexLink } from 'react-router'

 function Tabs (props) {

    const numbers = props.menuitems;
  const listItems = numbers.map((number, index) =>
    <li key={number.link} ><Link to={number.link} activeClassName="current" className={index === 0 ? "tab-link current" : "tab-link"}>{number.linkName}</Link></li>
  );
  return (
    <div>
    <ul className="tabs" >{listItems}</ul>
    <div className="tabs-header-stripe"></div>
    </div>
  );

}
export default Tabs

关于javascript - 将事件类添加到链接(React JS),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41714943/

相关文章:

javascript - ASP.NET MVC 中的 CSS 和 JavaScript 2 页

javascript - 页面及其子页面中的排序列表

javascript - ReactJS 与 Webpack : Uncaught ReferenceError: require is not defined

reactjs - React useState导致双重渲染

javascript - 警告 Prop `href` 不匹配。使用 React 服务器端渲染

javascript - 如何测试数组是否包含数组? ( Jest )

javascript - 如何在 onclick 事件期间更改 href

javascript - 如何创建响应式网站设计?

javascript - html 溢出 x 失败

jquery - 当鼠标悬停在菜单项上时,超链接会移动。