我认为这是一个相当简单的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对象?
感谢您阅读所有这些内容!