点击功能需要2次点击
问题描述:
我有3个选项卡,取决于哪个选项卡是点击我希望表单动作改变。 我有这样的:点击功能需要2次点击
$('#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')
}
});`
是实际发生的是,第一个改变行动错形式的行动,那么第二次点击修正形式的行动。
我需要这是正确的形式第一次点击。
答
..depending造成了哪个选项卡单击希望表格行动改变。
可能有一个更简单的方法来做到这一点,但因为你没有给我们你的HTML,我不能确定。无论如何,你不需要这里的active
课程。你可以只用单击元素的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');
}
});
+0
非常感谢你!完美的作品! – stickymits 2014-11-21 12:13:51
答
我认为这是因为你的代码先运行,'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);
});
这至少应该帮助您确定它是由你的代码运行“过快”
'myTab'不是一个有效的选择。小心分享HTML以及..? – 2014-11-21 11:29:47
您有''和''元素? –
nnnnnn
2014-11-21 11:29:53
您需要使用具有if/else或开关的计数器手动对其进行编码。一旦你完成了一次,格式就很简单了。我可以详细说明你是否在我的评论中没有得到重点。 – CODeeerrrrrrrr 2014-11-21 11:31:23