我正在尝试将tablesorter.js与DocPad一起使用。我已经将所需的行添加到docpad.coffee以加载tablesorter的css和js,并且我已经在我拥有要排序的表的页面中添加了对tablesorter()的调用。
但是,由于两个原因,生成的表没有正确排序:所有脚本都是延迟的(defer =“defer”),并且在加载脚本之前会出现对tablesorter()的调用,如下所示:
</tbody></table></p>
<script>
$(document).ready(function(){$("#mytable").tablesorter();})
</script></div>
</article>
...
<!-- Scripts -->
<script defer="defer" src="/vendor/jquery/1.10.2/jquery.min.js"></script>
<script defer="defer" src="/vendor/jquery/tablesorter/jquery.tablesorter.js"></script>
<script defer="defer" src="/vendor/modernizr/2.6.2/modernizr.min.js"></script>
<script defer="defer" src="/vendor/twitter-bootstrap/dist/js/bootstrap.min.js"></script>
<script defer="defer" src="/scripts/script.js"></script>
</body>
如果我删除延迟内容并将tablesorter()调用向下移动,则可以正常工作:
<!-- Scripts -->
<script src="/vendor/jquery/1.10.2/jquery.min.js"></script>
<script src="/vendor/jquery/tablesorter/jquery.tablesorter.js"></script>
<script src="/vendor/modernizr/2.6.2/modernizr.min.js"></script>
<script src="/vendor/twitter-bootstrap/dist/js/bootstrap.min.js"></script>
<script src="/scripts/script.js"></script>
<script>
$(document).ready(function(){$("#mytable").tablesorter();})
</script>
</body>
我需要摆脱延迟设置,我需要在加载脚本后调用tablesorter()。我怎么能在DocPad 6.59.6中做到这一点?
答案 0 :(得分:1)
我找到了一个修复和解决方法来让tablesorter工作。
序列问题:为了在调用之前加载所有Javascript
到tablesorter(),我在默认布局中移动了脚本部分
(src/layouts/default.html.eco
)作为<head/>
的一部分加载,
不是<body/>
最初的拉特部分。
延迟问题:我无法弄清楚如何修改Docpad
@getBlock('scripts')
不包含defer="defer"
设置。
然后,解决方法是不使用getBlock而是使用getBlock
硬编码脚本文件的引用。
总之,从这里开始:
<html>
...
<body>
...
<%- @getBlock('scripts')...
</body>
</html>
到此:
<html>
<head>
...
<script src="/vendor/jquery/...
...
</head>
<body>
...
</body>
</html>
修复了问题。我现在有一个维护问题,我必须维护布局中的脚本列表(而不是使用docpad.coffee中的脚本:部分);我可以忍受。