Isotope,Meteor,hasClass返回false?

时间:2013-05-13 00:48:56

标签: jquery meteor jquery-isotope

if (Meteor.isClient) {

Template.articles.rendered = function () {

    var container = $('.articles');
    var antiIso = $(container.find(".article:not(.isotope-item)"));

    if( container.children().length > 0 ) {

        if ( !container.hasClass("isotope") ) {
            console.log(container);
            console.log(container.hasClass("isotope"));

            container.isotope({
                // options
                itemSelector : '.article',
                layoutMode : 'fitRows'
            });

        } else if (container.hasClass("isotope") && antiIso.length > 0) {

            console.log("Updating Isos");

            container.isotope('addItems', antiIso, function() {
                container.isotope();
            });

        }

    }

}

控制台输出:

<div class="articles isotope" style="position: relative; overflow: hidden; height: 281px; ">…</div>
false

我错过了一些明显明显的东西吗?据我所知容器应该有类同位素吗?

1 个答案:

答案 0 :(得分:1)

我刚刚意识到console.log并没有像我想象的那样完全正常工作,虽然看起来它有三次同位素console.log每次都会向我显示对象的最终结果。

因此代码运行正常,它似乎没有出现。编辑我的代码到下面修复了问题:

if (Meteor.isClient) {

Template.articles.rendered = function () {

    var container = $('.articles');
    var antiIso = $(container.find(".article:not(.isotope-item)"));

    if( container.children().length > 0 ) {

        if ( !container.hasClass("isotope") && antiIso ) {

            container.isotope({
                // options
                itemSelector : '.article',
                layoutMode : 'fitRows'
            });

        } else if (container.hasClass("isotope") && antiIso.length > 0) {

            console.log("Updating Isos");

            container.isotope('addItems', antiIso, function() {
                container.isotope();
            });

        }

    }

}