Javascript 使用jquery对滑动切换作出反应

Javascript 使用jquery对滑动切换作出反应,javascript,jquery,reactjs,Javascript,Jquery,Reactjs,我试图通过制作一份包含可折叠项目的菜单来学习一些反应。我正在使用jQuery的slideToggle函数,但我无法让它正常工作 react代码的相关部分如下: var CollapsableMenuItem = React.createClass({ toggleDescription: function(el) { $(el).slideToggle(); }, render: function() { return (

我试图通过制作一份包含可折叠项目的菜单来学习一些反应。我正在使用jQuery的slideToggle函数,但我无法让它正常工作

react代码的相关部分如下:

var CollapsableMenuItem = React.createClass({
    toggleDescription: function(el) {
        $(el).slideToggle();
    },
    render: function() {
        return (
            <li>
                <label className='title' 
                       onClick={this.toggleDescription.bind(this)}>
                    {this.props.item.title}
                </label>
                <div className='description'>
                    <label>
                        {this.props.item.body}
                    </label>
                </div>
            </li>
        );
    }
});
因为这是需要滑动切换的实际元素

绑定“this[element]”以便jQuery在其上滑动切换的正确方法是什么

我现在正在工作,里面还有一些你可以忽略的东西。相关代码位于javascript部分的底部

我想到的第二个问题是:使用jQuery.ready函数绑定点击事件等是否不好。。。有什么反应


理论上,我可以将jquery文件与每个组件文件及其事件处理程序捆绑在一起。

React中的
这个
的上下文不是元素,而是React组件。jQuery不知道如何将其用作选择器

您需要获取对要使用jQuery控制的元素的引用

makeTogglable: function(element) {
  $element = $(element);

  this.toggle = function() {
    $element.slideToggle();
  };
},
render: function() {
  return (
    <li>
      <label onClick={this.toggle}></label>
      <div ref={this.makeTogglable}></div>
    </li>
  );
}
maketoggable:函数(元素){
$element=$(element);
this.toggle=函数(){
$element.slideToggle();
};
},
render:function(){
返回(
  • ); }
    采用回调,该回调将在装入组件时运行。DOM元素将被传递给回调,以便您可以直接使用它

    在本例中,我们使用它创建并公开一个新的
    this.toggle
    方法,该方法在元素上调用
    .slideToggle


    最后,我们将新的
    this.toggle
    方法传递给要触发切换的元素的
    onClick
    处理程序。在这种情况下,它是

    在React中
    的上下文不是元素,而是React组件。jQuery不知道如何将其用作选择器

    您需要获取对要使用jQuery控制的元素的引用

    makeTogglable: function(element) {
      $element = $(element);
    
      this.toggle = function() {
        $element.slideToggle();
      };
    },
    render: function() {
      return (
        <li>
          <label onClick={this.toggle}></label>
          <div ref={this.makeTogglable}></div>
        </li>
      );
    }
    
    maketoggable:函数(元素){
    $element=$(element);
    this.toggle=函数(){
    $element.slideToggle();
    };
    },
    render:function(){
    返回(
    
  • ); }
    采用回调,该回调将在装入组件时运行。DOM元素将被传递给回调,以便您可以直接使用它

    在本例中,我们使用它创建并公开一个新的
    this.toggle
    方法,该方法在元素上调用
    .slideToggle


    最后,我们将新的
    this.toggle
    方法传递给要触发切换的元素的
    onClick
    处理程序。在这种情况下,是

    谢谢您的帮助!(你们是不是碰巧在招聘:)?)事实上它不起作用,这里是更新代码的地方:确保你们使用的是最新版本的React。我认为JSFIDLE在默认情况下使用了一个旧的——是的,我们正在招聘。请随时联系我dan@astraldynamics.co.uk如果你感兴趣,谢谢你的帮助!(你们是不是碰巧在招聘:)?)事实上它不起作用,这里是更新代码的地方:确保你们使用的是最新版本的React。我认为JSFIDLE在默认情况下使用了一个旧的——是的,我们正在招聘。请随时联系我dan@astraldynamics.co.uk如果你感兴趣的话。