在'for'循环中定位正确的jQuery对象

时间:2014-03-07 10:24:37

标签: javascript jquery arrays

我认为这是一个相当简单的101个javascript问题,但是对于一个jQuery对象数组(每个都有一个包含各种内容的div),我试图在序列中触发一个'onHover'事件。稍后在Array中指定的对象。问题是,当对象按顺序初始化时,较早的对象(应该触发悬停事件)没有对后面的对象的“访问”,因为那些尚未创建。

因此,当创建对象并将其推入'sections'数组时,我会检查它们是否设置为触发悬停事件(详细信息由XML提供),如果是,则将它们“推”到一个单独的'onHoverSections'数组并给它们一个'onHover'属性,该属性指定它应该触发的jQuery对象的'ID'。设置为由悬停事件触发的对象使用...

侦听事件
section[loop].on('onHover', showSection);

然后,当所有对象都被初始化时,我遍历'onHoverSections'数组,并根据'sections'数组中其他jQuery对象的ID检查每个'onHover'属性,并设置该对象以触发'onHover'事件,如下所示:

for (var loop = 0;loop<onHoverSections.length;loop++) {
    var extractedID = onHoverSections[loop].onHover;
    for (var loopInner = 0;loopInner<sections.length;loopInner++) {
        if (sections[loopInner].ID==extractedID) {
            onHoverSections[loop].hover(
                function() {
                    sections[loopInner].trigger('onHover');
                },
                function() {
                    //
                }
            );
        }
    }
}

所以现在的问题是,最后,'loopInner'的值高于'sections'数组中的任何索引。

如何使用在调用实际.hover函数时不会更改的引用将.trigger侦听器添加到“sections”数组中的相应jQuery对象?

感谢您阅读所有这些内容!

0 个答案:

没有答案