2016-11-11 15 views
1

我在ReactJS中很新颖。我创建使用reactJSJSX我们可以将Reactjs和Jquery一起应用于HTML DOM元素

var Button = React.createClass({ 
    render: function() { 
     return <div><button className="btn btn-primary" id="viewThis"> View This</button></div> 
    },   
}); 

现在我想申请基于一些事件如该元素在某些jquery东西DOM元素:

$("#viewThis").click(function() { 
    //Code goes here 
}) 

如果这是可行的。由于某些原因,我的jquery代码无法正常工作。

+0

reactjs和jquery基本上都是javascript库所以是的:) – madalinivascu

+0

你需要委托那个点击事件 – madalinivascu

+0

好吧任何原因那段代码不工作,我在'react'部分中缺少的任何东西。 – curiousguy

回答

1

这是因为您试图将点击处理程序绑定到动态生成的元素。虽然你可以解决这个问题:

Click event doesn't work on dynamically generated elements

const App =() => (
 
    <div> 
 
    <button className="btn btn-primary" id="viewThis"> View This</button> 
 
    </div> 
 
); 
 

 
ReactDOM.render(<App />, document.getElementById('app')); 
 

 
$('#app').on('click', '#viewThis',() => console.log('clicked'));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script> 
 
<div id="app"></div>

你可能只是想在组件中使用onClick

const App =() => (
 
    <div> 
 
    <button className="btn btn-primary" onClick={() =>console.log('clicked')}> View This</button> 
 
    </div> 
 
); 
 

 
ReactDOM.render(<App />, document.getElementById('app'));
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script> 
 
<div id="app"></div>

+0

非常有意义。非常感谢。 – curiousguy

相关问题