jQuery - 将元素的ID名称添加到body类

时间:2014-09-17 16:48:58

标签: jquery

我正在使用jQuery将类.in-view添加到视口中当前显示的div中(通过此jQuery-viewport-checker脚本)。

我想获取当前具有类in-view的div的ID名称,并将其作为类名添加到body

这是我到目前为止所得到的。我已经将活动ID添加到变量中,看看我是否可以将其输出到控制台,但到目前为止还没有运气!控制台只输出'undefined'。

jQuery(document).ready(function() {
    jQuery('.mydiv').viewportChecker({
        classToAdd: 'in-view' // This adds the class to any div that is in the viewport
    });
    var activeId = jQuery('.in-view').attr('id');
    window.console&&console.log(activeId, "Active div ID"); // Testing to see if variable contains the ID

});

1 个答案:

答案 0 :(得分:1)

在您致电viewportChecker后,显示in-view div的代码正在立即。显然,当时没有看到.mydiv(或者插件还没有机会在视图中标记它)。

我还没有使用该插件,但是看the docs,您想要使用callbackFunction选项:

jQuery(document).ready(function() {
    jQuery('.mydiv').viewportChecker({
        classToAdd: 'in-view', // This adds the class to any div that is in the viewport
        callbackFunction: function(elem, action) {
            $(document.body).toggleClass(elem.attr("id"), action === "add");
        }
    });
});

action"add""remove"的情况下调用回调,因此我使用action === "add"来决定是添加类还是删除它。