【问题标题】:Isotope- works on jsFiddle but not on site同位素 - 在 jsFiddle 上工作,但不在现场
【发布时间】:2013-07-27 10:52:45
【问题描述】:

我开始在一个偶然发现的 jsFiddle 上试验同位素 - 然后将确切的代码复制到文本/编辑中以制作一个非常基本的测试页面。 这是我的问题:jsFiddle 和我制作的测试页面不匹配。

我想要的效果是砌体布局、三列和百分比宽度,因此它们会随着浏览器重新调整大小。

我的测试页面似乎只遵循 CSS 而不是 JavaScript。

我用过 JavaScript 但没用过 jQuery,我知道 Isotope 是一个 jQuery 插件。 (这里有没有我遗漏的步骤,或者我是否应该在我的网站上扔掉这段代码?)

还有一个“外部资源”,我现在认为它是我找到的原始 jsFiddle 的代码,但当时(大约一个小时前)我认为它是在我编写脚本时为我生成的,而且我是意味着附加它 - 它被保存为“jquery.isotope.min.js”的同名。 (之前从未使用过 jsFiddle 哈哈)但是,删除代码链接对站点没有影响。

在我的 test.html 页面中请求 JavaScript 和 CSS 的 jsFiddle 代码:

<link rel="stylesheet" href="teststyle.css">
<script type="text/javascript" src="jquery.isotope.min.js"></script>
<script type="text/javascript" src="js.js"></script>

【问题讨论】:

    标签: jquery html jquery-isotope jquery-masonry jsfiddle


    【解决方案1】:

    您的脚本标签未正确关闭

    <link rel="stylesheet" href="teststyle.css">
    <script type="text/javascript" src="jquery.isotope.min.js"></script>
    <script type="text/javascript" src="js.js"></script>
    

    不关闭script 标记可能会阻止下一个script 正确包含在页面中

    换句话说:这不是的问题。

    【讨论】:

    • 嘿,谢谢,但是我注意到就在您实际发表评论的几分钟前!但它并没有改变网站上的任何东西:(
    • @EmilyRyder 你能尝试与示例plnkr.co/edit/xix4dTo9ar8zKZNOMNQH?p=preview中给出的相同设置吗?
    • @EmilyRyder 你能在你的测试页面中复制相同的代码吗?保持与文件和样式相同的结构
    【解决方案2】:

    你应该附加 jquery 文件和一个你缺少的回调函数

    使用这个

    <link rel="stylesheet" href="teststyle.css">
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"></script>
    <script type="text/javascript" src="jquery.isotope.min.js">
    <script>
    $(document).ready(function(){
    var $container = $('#container');
    
    $container.load(function () {
        $container.isotope({
            // options...
        });
    });
    
    
    $(function () {
        var $container = $('#container'),
            $items = $('.item');
    
        $container.isotope({
            itemSelector: '.item',
            masonry: {
                columnWidth: 0
            },
            resizesContainer: false,
            getSortData: {
                fitOrder: function ($item) {
                    var order,
                    index = $item.index();
    
                    if ($item.hasClass('large') && index % 2) {
                        order = index + 1.5;
                    } else {
                        order = index;
                    }
                    return order;
                }
            },
            sortBy: 'fitOrder'
        });
    
        $items.click(function () {
            var $this = $(this);
            // nothing to change if this already has large class
            if ($this.hasClass('large')) {
                return;
            }
            var $previousLargeItem = $items.filter('.large');
    
            $previousLargeItem.removeClass('large');
            $this.addClass('large');
            $container
            // update sort data on changed items
            .isotope('updateSortData', $this)
                .isotope('updateSortData', $previousLargeItem)
            // trigger layout and sort
            .isotope();
        });
    });
    });
    </script>
    

    【讨论】:

    • 我研究了回调函数,但我不需要。此外,第三个脚本与我的“js.js”脚本完全相同。最后,您在代码中包含了一些看起来像骗局的其他“ajax”jquery。所以我不这么认为。你为什么要让我这样做?
    • 我只是尝试按照您的建议调用 js.js 文件,但看起来一样。我确实想知道您为什么要我将此代码称为“ajax.googleapis.com”代码
    • @EmilyRyder 您没有包含 jQuery 库,如果您查看控制台会抛出错误,请在包含同位素库之前包含该库&lt;script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"&gt;&lt;/script&gt;
    • @ArunPJohny 我现在明白了。很抱歉认为这是一个骗局嘘哈哈。所以我添加了这个库....但现在它根本没有加载。这是一个新链接emilyryder.com/test/test2.html
    • @EmilyRyder 它正在工作,但由于一些与样式相关的问题,这些元素被隐藏了
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-31
    • 1970-01-01
    • 1970-01-01
    • 2014-06-23
    • 2020-02-23
    相关资源
    最近更新 更多