Javascript 点击功能需要点击2次
我有3个选项卡,根据要单击的选项卡,我希望更改表单操作。 我有这个:Javascript 点击功能需要点击2次,javascript,jquery,Javascript,Jquery,我有3个选项卡,根据要单击的选项卡,我希望更改表单操作。 我有这个: $('#myTab li').click(function(){ if ($('#action1').hasClass('active')){ $('#my-form').attr('action', '/order/signup1') } else if ($('#action2').hasClass('active')){ $('#my-form').attr('ac
$('#myTab li').click(function(){
if ($('#action1').hasClass('active')){
$('#my-form').attr('action', '/order/signup1')
}
else if ($('#action2').hasClass('active')){
$('#my-form').attr('action', '/order/signup2')
}
else if ($('#action3').hasClass('active')){
$('#my-form').attr('action', '/order/signup3')
}
});`
实际上,第一次单击将操作更改为错误的表单操作,然后第二次单击将更正表单操作
我需要这是正确的形式第一次点击 我认为这是因为代码首先运行,“active”类尚未设置。您可以尝试的事情之一是将代码包装在setTimeout中
$('#myTab li').click(function(){
setTimeout(function() {
if ($('#action1').hasClass('active')){
$('#my-form').attr('action', '/order/signup1')
}
else if ($('#action2').hasClass('active')){
$('#my-form').attr('action', '/order/signup2')
}
else if ($('#action3').hasClass('active')){
$('#my-form').attr('action', '/order/signup3')
}
}, 100);
});
这至少可以帮助您确定这是否是由于代码运行“太快”造成的
…根据要单击的选项卡,我希望更改表单操作
有一个更简单的方法可以做到这一点,但因为你没有给我们你的HTML,我不能肯定。无论如何,这里不需要活动类。您可以像这样使用单击元素的id:this.id
代码如下:
$('#myTab li').click(function(){
if (this.id === 'action1'){
$('#my-form').attr('action', '/order/signup1');
}
else if (this.id === 'action2'){
$('#my-form').attr('action', '/order/signup2');
}
else if (this.id === 'action3'){
$('#my-form').attr('action', '/order/signup3');
}
});
演示:myTab不是有效的选择器。是否也要共享HTML?您有和元素?您需要使用带有if/else的计数器或开关手动对其进行编码。一旦你做了一次,格式就很简单了。如果你不明白我评论中的要点,我可以详细说明。。!对不起,我已经更新了我的代码。它们是ID它是根据我的实际情况稍微编辑的code@Andy字体你会拉小提琴吗?并显示您的HTML以及请。。。。