jquery - 使触发器单击X次

时间:2014-10-24 13:37:50

标签: jquery triggers click

我正在使用该功能:

$('.box').on('click', '.goTo1', function(e) {
    $('.yar').trigger('click');
});

这很好用,但我怎么能注册多次点击?

$('.yar').trigger('click');
$('.yar').trigger('click'); 
$('.yar').trigger('click');

我已尝试过上述内容,但它似乎无法奏效。任何想法,可能像

$('.yar').trigger(('click')2);

4 个答案:

答案 0 :(得分:2)

如果我正确理解你的问题,那就没有,$('.yar').trigger(('click')2)。你可以使用一个循环,例如,

for(var i = 0; i < 3; i++) {
  $(".yar").trigger("click");
}

但我会强调卡尔 - 安德烈的问题:这里的目标是什么?这听起来像是解决代码中其他问题的一种解决方法。

答案 1 :(得分:1)

我非常怀疑这对你想要达到的目标是一个好方法,但你可以做到:

$('.box').on('click', '.goTo1', function(e) { 
    for(var i = 0; i < 3; i++) $('.yar').trigger('click'); 
});

变量i是计数器,它定义调用函数的频率。如果您要激活10次函数,只需将i < 3替换为i < 10

答案 2 :(得分:1)

你的例子有效。我想这取决于.yar的点击功能执行的内容。 并且多次触发点击事件是一个错误的决定,这样做可以让您的代码中的内容非常糟糕。

$('.box').on('click', '.goTo1', function(e) {
    $('.yar').trigger('click');
    $('.yar').trigger('click');
    $('.yar').trigger('click');
});


$('.yar').on('click', function(){
    $(this).append('<p>event</p>');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

<div class="box">
    <div class="goTo1">GO TO</div>
</div>

<div class="yar"></div>

答案 3 :(得分:0)

setTimeout适用于我的情况。无需创建和修改多个函数或使用增量。

$('.box').on('click', '.goTo1', function(e) { $('.yar').trigger('click'); setTimeout(function() {$('.yar').trigger('click')}, 100); });

希望这有助于其他人