如何让一个按钮点击其他按钮

问题描述:

我遇到了一些麻烦,找出这个问题,我有一个按钮,它可以大量点击页面上的其他按钮。虽然问题是我不想一次激活所有按钮,并基本上将它们排除在外,直到其他按钮完成其操作。如何让一个按钮点击其他按钮

Page.MassCheckStats = function(){ 
     $('[data-field="button_update_stats"]').each(function(){ 
      $(this).click(); 
     }); 
    } 

我怎样才能得到上面的代码点击3个按钮,然后再进入其他按钮。

您可以使用递归超时是这样的:

(对不起,我忘了这是在同一时间三个按钮);

Page.MassCheckStats = function(button){ 
    var button = typeof button == 'undefined'?$('[data-field="button_update_stats"]')[0] : button; 
    for(var i = 0; i < 3; i++){ 
     $(button).click(); 
     if($(button).next().length == 0) return; 
     button = $(button).next(); 
    } 
    setTimeout(function(){    
     Page.MassCheckStats($(button)); 
    }, 1000); 
} 

其中1000 = 1000毫秒=1秒

和这里的拨弄它: http://jsfiddle.net/andrepadez/cR4tP/2/

函数内部的冷杉线是特雷纳里操作者。这意味着如果你没有传递任何调用该函数的参数(第一次被调用),typeof button == 'undefined',所以它将分配给var button第一个由jQuery选择器选择的元素 - $('[data-field="button_update_stats"]')[0]。当我从超时中再次调用它时,我传递当前的$(button).next(),因此它将假定参数中传递的内容。

+0

嗯,我点击了所有点击并没有发生任何事情。 – Novazero 2012-02-02 22:46:19

+0

等待nm现在起作用。看起来这正是我想要的:D谢谢你在教我这方面的努力。 – Novazero 2012-02-02 22:46:32

+0

如果您对代码有任何疑问,请随时询问 – 2012-02-02 22:48:22

,而不是担心你应该只调用分配给各按钮的功能单击事件

,或者如果按钮的某个按钮需要做什么其他三个按钮先做它的情况下,它的功能应该包含那3个功能

+1

这是正确的,但有很多情况下这些功能是匿名功能,你真的需要触发事件... – 2012-02-02 22:41:50

+0

是的,这就是为什么谭的答案不会帮助我在我的情况,因为我的功能是匿名的。 – Novazero 2012-02-02 22:51:30

这听起来令人难以置信的黑客,但也许你可以附加另一个点击处理程序。

$(document).ready(function(){ 
    $buttons = $('[data-field="button_update_stats"]'); 

    // attach your original events here 

    for(var i = 0; i < $buttons.length-1; i++) { 
     $button = $($buttons.get(i)); 
     $button.click(function(){$($buttons.get(i+1)).click();}); 
    } 
} 


// to start the chain 
$($('[data-field="button_update_stats"]').get(0).click(); 

此代码是完全的ad-hoc并没有测试