Javascript 如何防止在活动选项卡上调用函数?
例1: 单击Javascript 如何防止在活动选项卡上调用函数?,javascript,reactjs,Javascript,Reactjs,例1: 单击选项卡1。选项卡1是活动选项卡。再次单击tab1(tab1是活动选项卡)我不想调用函数start()。单击选项卡2或选项卡3,我想调用函数start() 例2: 单击选项卡2。选项卡2是活动选项卡。再次单击选项卡2(选项卡2是活动选项卡)我不想调用函数start()。单击选项卡1或选项卡3,我想调用函数start() 代码如下: 图纸: var Tab=React.createClass({ render:function(){ 返回
选项卡1
。选项卡1是活动选项卡。再次单击tab1
(tab1是活动选项卡)我不想调用函数start()
。单击选项卡2或选项卡3,我想调用函数start()
例2:
单击选项卡2
。选项卡2是活动选项卡。再次单击选项卡2
(选项卡2是活动选项卡)我不想调用函数start()
。单击选项卡1或选项卡3,我想调用函数start()
代码如下:
图纸:
var Tab=React.createClass({
render:function(){
返回
{this.props.content}
}
});
var Tabs=React.createClass({
getInitialState:函数(){
返回{selectedTabId:1}
},
isActive:函数(id){
返回this.state.selectedTabId==id;
},
setActiveTab:函数(SelectedTab){
这个。start();
this.setState({selectedTabId});
},
开始:函数(){
返回console.log('aaa')
},
render:function(){
var total=this.props.data.points.total,
tabs=总计.map(函数(el,i){
返回
},这个);
return
{tabs}
}
});
常数数据={
要点:{
总数:[
{id:1,名称:'tab-1',文本:'text'},
{id:2,名称:'tab-2',文本:'text-2'},
{id:3,名称:'tab-3',文本:'text-2'}
]
}
}
ReactDOM.render(
,
document.getElementById('main')
);
您可以添加一个条件来检查单击的选项卡是否已被选中,如果已被选中,请不要执行任何操作,否则请正常运行它
setActiveTab: function (selectedTabId) {
if(!this.isActive(selectedTabId)){
this.start();
this.setState({ selectedTabId });
}
},
您可以添加一个条件来检查单击的选项卡是否已被选中,如果已被选中,请不要执行任何操作,否则请正常运行
setActiveTab: function (selectedTabId) {
if(!this.isActive(selectedTabId)){
this.start();
this.setState({ selectedTabId });
}
},
您只需添加条件即可检查其与当前状态不相等选项卡:
setActiveTab: function (selectedTabId) {
if(this.state.selectedTabId!==selectedTabId){//ensure only trigger when different tab id
this.start();
this.setState({ selectedTabId });
}
},
以下是您只需添加条件,即可检查其与当前状态选项卡的不相等:
setActiveTab: function (selectedTabId) {
if(this.state.selectedTabId!==selectedTabId){//ensure only trigger when different tab id
this.start();
this.setState({ selectedTabId });
}
},
这是