【发布时间】:2015-10-03 11:13:45
【问题描述】:
我正在尝试创建一个具有以下功能的列表。
- 悬停时更改 listItem 的背景颜色。
- 单击时更改列表项的背景颜色。
- 在单击的元素之间切换背景颜色。[即列表中只有一个元素可以具有 clicked 属性]
我已经执行了 onhover 1 和 2 功能,但我无法实现第三个功能。请帮我解决这个问题。
提前致谢。
/** @jsx React.DOM */
'use strict'
var React = require('react')
var ListItem = React.createClass({
getInitialState: function() {
return {hover_flag: false, click_flag: false}
},
hoverEvent: function() {
this.setState({hover_flag: !this.state.hover_flag})
},
clickEvent: function(){
this.setState({click_flag: true})
},
render: function() {
var liStyle = {
/* some more class properties */
background: '#cc181e',
}
if(this.state.hover_flag || this.state.click_flag) {
liStyle['background'] = '#880000'
}
if(this.state.click_flag) {
liStyle['background'] = '#880000'
}
return (
<li onClick={this.clickEvent} onMouseEnter={this.hoverEvent} onMouseLeave={this.hoverEvent} style={liStyle} key={this.props.name}>{this.props.name}</li>
)
}
})
module.exports = React.createClass({
render: function() {
var ulStyle = {
padding: '0px',
margin: '20px',
}
var link = {
textDecoration: 'none',
color: 'white',
cursor: 'pointer'
}
var list = this.props.data.map(function(data) {
/*List of li elements */
return <ListItem name={data.name} />
})
return (
<ul style={ulStyle}>
{list}
</ul>
)
}
});
【问题讨论】:
标签: javascript jquery reactjs