Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 点击功能需要点击2次_Javascript_Jquery - Fatal编程技术网

Javascript 点击功能需要点击2次

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

我有3个选项卡,根据要单击的选项卡,我希望更改表单操作。 我有这个:

$('#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以及请。。。。