当用户提供反馈时禁用单击事件
Disable click event when a user provides feedback
我是ReactJS的新手,试图找到一种方法来禁用两个div的点击事件,当用户提供javascript的反馈。如能提供任何协助,我将不胜感激。我该如何用下面的代码做到这一点:
var SubmitRating = React.createClass({
FEEDBACK_PHASE: 1, // - user agrees to give feedback and is yet to give
THANKS_PHASE: 2, // - user gave feedback
getInitialState: function () {
return {
"phase": this.FEEDBACK_PHASE
}
},
setPhase: function(phase) {
this.setState({
"phase": phase
});
},
componentWillReceiveProps: function(nextProps) {
if(nextProps.active) {
this.setPhase(this.FEEDBACK_PHASE);
}
},
submitRating: function(rating) {
var currentVideo = this.props.currentVideoData;
this.setPhase(this.THANKS_PHASE);
this.props.submitDone();
//TODO : need to add more parameters which will be sent to rating app
ajaxPost("/answer_rating", {"documentID": currentVideo.talk_id,
"startTime": currentVideo.start_time_sec,
"endTime": currentVideo.stop_time_sec,
"userRanking": rating,
"hashCode": currentVideo.metadata.hash,
"questionText": currentVideo.metadata.question }, function(response){
console.log(response);
});
},
render: function() {
return (
<div className={this.props.active ? "feedback-options-container" : "hidden"}>
<div className={this.state.phase == this.FEEDBACK_PHASE ? "feedback-options" : "hidden"} >
<div className="option-relevant" onClick={this.submitRating.bind(this, 10)}> This video answered correctly </div>
<div className="option-irrelevant" onClick={this.submitRating.bind(this, 1)}> This video did not answer properly </div>
</div>
<div className={this.state.phase == this.THANKS_PHASE ? "feedback-reply" : "hidden"}> <h4> Thanks for your feedback </h4> </div>
</div>
)
},
});
在React中,你想要通过改变状态来触发重新呈现。就像您已经对类所做的那样,使用内联条件来更改标记的输出。
// change
onClick={this.submitRating.bind(this, 10)}
// to
onClick={this.state.someCondition ? this.submitRating.bind(this, 10) : null}
一旦你的点击事件(和ajax?)的东西完成,只需使用this.setState
触发重新渲染,就像你已经做的类。
假设您希望在更改phase
时禁用单击侦听器,您可以使用:
onClick={this.state.phase == this.FEEDBACK_PHASE ? this.submitRating.bind(this, 10) : null}
相关文章:
- 将单击事件添加到数据表
- 将单击事件添加到附加的项目中
- 在IE8中不起作用的元素上触发单击事件
- 链接上的IE10 jquery句柄单击事件不起作用
- 如何使用纯 JavaScript 在所有浏览器中区分左/右/中键单击事件
- 如何在master中调用细节网格作为单击事件
- 兰吉 |如何在 span 标签上使用单击事件删除突出显示的文本
- 如何隐藏按钮单击事件上的占位符
- 复选框,然后单击事件处理
- 如何使用for循环添加所有按钮'单击事件
- 手柄'img'单击事件并插入'alt'使用jQuery将属性转换为文本框
- 覆盖单击事件不起作用
- 单击事件打开两个弹出菜单
- 单击事件不起作用
- 从其他元素上的单击事件访问image src属性
- 单击事件中的ajax请求后重定向
- 如何缩放地图框传单中的标记单击事件
- 在没有焦点的情况下捕获画布上的第一次单击事件
- 通过单击事件识别画布上的对象
- 如何将单击事件添加到JQuery中动态添加的元素中