Javascript 单击一个按钮可触发另一个按钮的延迟单击

Javascript 单击一个按钮可触发另一个按钮的延迟单击,javascript,jquery,html,Javascript,Jquery,Html,我试着制作一个按钮,当它被点击时,它也会触发另一个按钮的点击,但每个按钮都会有延迟。例如,如果单击了主按钮,则子按钮1将触发单击,然后在2秒后单击子按钮2,在4秒后单击子按钮3 实际情况是,客户最多可以选择3种产品,如果他们单击主按钮,这3种产品将被添加到购物车中,因为当他们单击主按钮时,这3种产品的添加到购物车按钮。产品页面有一个Ajax。如果单击主按钮,有时只添加1或2个产品。我试图延迟每个按钮的点击 $(.main按钮”)。在(“单击”,函数(){ $(“.container.row”)

我试着制作一个按钮,当它被点击时,它也会触发另一个按钮的点击,但每个按钮都会有延迟。例如,如果单击了
主按钮
,则
子按钮1
将触发单击,然后在2秒后单击
子按钮2
,在4秒后单击
子按钮3

实际情况是,客户最多可以选择3种产品,如果他们单击
主按钮
,这3种产品将被添加到购物车中,因为当他们单击主按钮时,这3种产品的
添加到购物车按钮
。产品页面有一个Ajax。如果单击主按钮,有时只添加1或2个产品。我试图延迟每个按钮的点击

$(.main按钮”)。在(“单击”,函数(){
$(“.container.row”)。每个(函数(i){
$rowNum=$(this.attr(“id”,“row-”+i);
$rowNum.find(“按钮”)。触发器(“单击”)。延迟(5000)。文本(“单击”);
})
});

主按钮
子按钮1
子按钮2
子按钮3
$(.main按钮”)。在(“单击”,函数(){
myLoop($(“.container.row”).children().length)
});
var i=1;
函数myLoop(count){
setTimeout(函数(){
$('.container:n个子('+i+'))。子('button')。文本(“单击”)
如果(i
尝试演示-
$(.main按钮”)。在(“单击”,函数(){
myLoop($(“.container.row”).children().length)
});
var i=1;
函数myLoop(count){
setTimeout(函数(){
$('.container:n个子('+i+'))。子('button')。文本(“单击”)
如果(i
尝试演示-

这并不是你特别想要的,但是你想要的功能的结果是一样的

在评论中,其他人和我都谈到了如何选择在主函数本身中调用子按钮函数,而不具有链接按钮单击功能的逻辑

在此之前,您需要确保所有子函数都在全局范围内,以便可以在主函数中访问它们

例如:

subButtonOneFunction() {
    //do something
}

subButtonTwoFunction() {
    //do something
}

subButtonThreeFunction() {
    //do something
}

$(".main-button").on("click",function(){
    $.ajax({
        type: 'POST',
        url: '/path/to/your_page.php',
        data: {
            data : dataVar,
            moreData : moreDataVar
        },
        success: function (html) {
            subButtonOneFunction();
            subButtonTwoFunction();
            subButtonThreeFunction();
            //and so forth
        }
    })
});
本例中的子按钮功能在主功能范围内,因此您可以在主功能中调用子功能

我不知道除了您尝试的延迟的按钮点击循环之外,您的主函数是否还有其他功能,我尝试提供一个AJAX函数如何工作的示例,并添加了一个success函数,您可以在其中调用子函数

首先,我们声明
类型
。类型是AJAX函数将解析的数据的数据类型。值得注意的数据类型是
POST
GET

其次,我们声明
url
。url是将解析数据的页面。它可以是您的当前页面,也可以完全是另一个页面

第三,我们为我们希望解析的数据声明变量名,以及它们的内容。这些变量的逻辑与您从JavaScript中知道的任何其他变量相同。所以它们可以包含数字,字符串,数组,任何你通常知道的东西

从AJAX示例中获取一个数据变量并为其赋值可以这样做:

我们的AJAX示例:
data:dataVar

文字示例:
data:$('input#someinputcainingvalue').val()

我们的AJAX变量数据现在将包含id为SomeInputContainingValue的输入字段的值

使用单击元素值的另一个示例:
数据:$(this).val()

如您所见,数据只是您将声明为任何其他JavaScript变量的变量。这里的区别在于,
基本上是AJAX函数数据数组中
=
的语法

最后,我们在AJAX函数中声明我们的
success
函数。它的作用是,它允许我们在成功后“做一些事情”。例如,您可以在这里调用子函数

这将是一种更干净的方法,并且在将来检查应用程序时会更容易检查,而且看起来不像是“黑客”或其他解决方法。

这不是您具体要求的,但您所寻求的功能的结果将是相同的

在评论中,其他人和我都谈到了如何选择在主函数本身中调用子按钮函数,而不具有链接按钮单击功能的逻辑

在此之前,您需要确保所有子函数都在全局范围内,以便可以在主函数中访问它们

例如:

subButtonOneFunction() {
    //do something
}

subButtonTwoFunction() {
    //do something
}

subButtonThreeFunction() {
    //do something
}

$(".main-button").on("click",function(){
    $.ajax({
        type: 'POST',
        url: '/path/to/your_page.php',
        data: {
            data : dataVar,
            moreData : moreDataVar
        },
        success: function (html) {
            subButtonOneFunction();
            subButtonTwoFunction();
            subButtonThreeFunction();
            //and so forth
        }
    })
});
本例中的子按钮功能在主功能范围内,因此您可以在主功能中调用子功能

我不知道除了您尝试的延迟的按钮点击循环之外,您的主函数是否还有其他功能,我尝试提供一个AJAX函数如何工作的示例,并添加了一个success函数,您可以在其中调用子函数

首先,我们声明
类型
。类型是AJAX函数将解析的数据的数据类型。值得注意的数据类型是
POST
GET

其次,我们声明
url
。url是将解析数据的页面。它可以是您的当前页面,也可以完全是另一个页面

第三,我们声明变量n