我想将jQuery脚本用于tumblr主题,但不起作用。

这是我的代码:

<html>
    <head>

    </head>

    <body>
            <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
            <script src="http://static.tumblr.com/wgijwsy/jgemkyt9x/jquery.photoset-grid.min.js"></script>


            <script>
                $('.photoset-grid').photosetGrid();
            </script>

            {Block:Posts}
            {block:Photoset}
            <div class="photoset">
                <div class="photoset-grid" data-layout="{PhotosetLayout}">
                    {block:Photos}
                     <img src="{PhotoURL-500}" {block:Caption}alt="{Caption}"{/block:Caption} />
                    {/block:Photos}
                </div>

                {block:Caption}
                {Caption}
                {/block:Caption}
            </div>
            {/block:Photoset}
            {/Block:Posts}
    </body>
</html>


它基本上是从以下站点复制粘贴的:http://buildthemes.tumblr.com/post/47574959793/responsive-tumblr-photosets-with-jquery-photoset-grid

但是我认为它不起作用,脚本似乎没有加载。也许我把那些脚本标签放错了地方?

最佳答案

只是为了扩展Charlie所说的(因为您说自己是对此的初学者)。

您现在编写的方式是,代码中说:“查找所有具有photoset-grid类的元素,并对它们执行photosetGrid()功能。”麻烦的是,当这行代码运行时,浏览器不知道photoset-grid类的任何元素-实际上,它根本不了解任何主体元素,因为浏览器没有在阅读页面时尚未找到他们。

(但是,您的代码没有给出错误,因为它说“对所有.photoset-grid元素执行此操作”-即使没有该类型的任何元素,此操作也可以成功运行,因为它仍然可以执行对它们全部为零的操作。)

而是用以下内容替换最后一组<script></script>标记之间的内容:

$(document).ready(function() {
    $('.photoset-grid').photosetGrid();
});


这就是说:“一旦您加载了页面结构并设置了DOM (Document Object Model),然后找到所有.photoset-grid元素并对其进行photosetGrid()功能。”

关于javascript - jQuery脚本未在Tumblr主题中加载,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24980598/

10-11 14:46