更新循环内对象内的变量

时间:2015-12-11 13:36:01

标签: javascript jquery arrays loops object

会尝试解释这个问题,对不起,如果它没有意义: 我正在尝试在循环时更新对象内的变量。 试图将所有类元素的父元素作为目标,以便在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(对象?)中访问它们。 非常感谢任何人提供帮助。

2 个答案:

答案 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'
    });
 });