会尝试解释这个问题,对不起,如果它没有意义: 我正在尝试在循环时更新对象内的变量。 试图将所有类元素的父元素作为目标,以便在scrollmagic插件上使用。 这就是我的代码:
var childElement = $('.child');
var myparents = [];
var getParent = function () {
childElement.each(function() {
var theParent = $(this).closest('.parent');
myparents.push(theParent);
});
}();
for (var i=0; i<childElement.length; i++) {
// also using the loop to add animation to every element,
// that's why the loop through other elements
new ScrollMagic.Scene({
// here is where I would need to access each
triggerElement: myparents[i],
triggerHook: 'onEnter'
})
}
元素已成功添加到数组中,并可以使用它们,但无法在此scrollmagic(对象?)中访问它们。 非常感谢任何人提供帮助。
答案 0 :(得分:1)
您可以轻松使用不太容易出错的代码的较短版本,并且更容易使用'作为自包含模块',因为它不会污染范围。
saveInBackground
当您知道孩子时,无论何时需要访问scrollMagic对象,您都可以访问$('.child').each(function(){
var $child = $(this),
$parent = $child.closest('.parent');
$child.data('scrollMagic',new ScrollMagic.Scene({
triggerElement: $parent[0],
triggerHook: 'onEnter'
});
});
但是,如果$(<childElement>).data('scrollMagic')
钩子中的对象本身可用,则取决于onEnter
插件的实现方式。这与此代码无关。
答案 1 :(得分:0)
你为什么不这样使用:
var childElement = $('.child');
childElement.each(function() {
var theParent = $(this).closest('.parent');
new ScrollMagic.Scene({
triggerElement: theParent,
triggerHook: 'onEnter'
});
});