0
我有一个应用程序,其中我使用了很多不显眼的javascript将轨道部分添加到我的页面。Rails 4 - JavaScript无法工作,除非它把脚本标记放在页面上
我遇到的麻烦是这样的:如果放置在资产目录不会工作的JavaScript。
在Chrome开发工具中,我可以看到它的加载,但没有任何反应。在我的Coffeescript文件中,我使用了DOM准备替代方法找到here的涡轮链接。但是这没有效果。
奇怪的是:如果我将脚本放在加载的部分的脚本标记内,那么它就可以工作。
例如:如果包含选项卡的部分在加载javascript后加载,则此coffeescript文件将不会运行。
var ready;
ready = function() {
$('tab').click ->
$('.tab').removeClass("active");
$(this).addClass("active");
panel = $(this).attr("data-panel")
$('.panel').hide();
$('#' + panel).show();
};
$(document).ready(ready);
$(document).on('page:load', ready);
尽管此脚本放置在页面的底部并且具有选项卡,但它仍可行。
<script>
$('.tab').click(function() {
$('.tab').removeClass("active");
$(this).addClass("active");
var panel = $(this).attr("data-panel")
$('.panel').hide();
$('#' + panel).show();
});
</script>
我的问题是这样的:首先为什么会发生这种情况?其次,有没有办法解决这个问题?
感谢您指出我的错误。但是,即使我将脚本标记JS放在JS文件中并通过资产管道加载,也可以应用相同的结果。 – greyoxide
你为什么要调用$(document).ready(ready)和 $(document).on('page:load',ready)?你可能会两次触发听众。 –
如果您将控制台消息添加到就绪功能中,它会显示吗? –