循环中的jQuery .trigger()方法

时间:2012-01-30 21:57:33

标签: jquery arrays events loops

我有这段代码:

$(document).on("click", "#breadNavMain", function() {
    for(var i = 0; i < getActiveSlides().length; i++) {
        $("#studentWrapper").trigger("click");
    }
});

方法getActiveSlides()将返回当前为我的应用程序激活的幻灯片(作为数组)。重要的是我获得了活动幻灯片的数量。对于超过1个活动幻灯片的任何内容,上面的循环不起作用。如果我有3个活动幻灯片(例如),它只会调用.trigger()方法一次。在我的点击处理程序中,如果我改为使用:

$("#studentWrapper").trigger("click");
$("#studentWrapper").trigger("click");
$("#studentWrapper").trigger("click");

它会正常工作。问题是我不知道有多少次我需要调用.trigger()方法,所以我无法手动执行此操作。我想把它称为循环,就像我在上面试过的那样。无论如何让.trigger()在循环中工作?

1 个答案:

答案 0 :(得分:1)

它应该可以正常工作,但我怀疑getActiveSlides方法中的某些内容是错误的。可能是在第一次单击后它没有返回正确数量的活动幻灯片。您可以将其返回值转换为变量,然后执行代码。试试这个。

$(document).on("click", "#breadNavMain", function() {
    var activeSlidesLen = getActiveSlides().length;
    for(var i = 0; i < activeSlidesLen; i++) {
        $("#studentWrapper").trigger("click");
    }
});