这不是没有加载jQuery的情况,但我觉得我错过了其他简单的东西...在这个暂存网站:https://hidden-tundra-8656.herokuapp.com/orders,一旦页面完成装载,"露营&背包"应该是自动选择的。
这是代码:
$(document).ready( function() {
console.log("about to trigger initial click")
$(".category-selector[data-id='"+gon.category_to_start+"']").click()
})
它绝对不会发生。有什么想法吗?我唯一可以想到的是category-selector
是从Ruby中插入的,请参阅下面的视图代码,所以可能会导致它?
<div class="row">
<% @item_categories.each do |ic| %>
<div class="col-xs-6 category-box">
<div class="row category-row">
<div class="col-xs-12 table-display category-selector text-center" data-id="<%=ic.id%>">
<span class="labeler-response table-cell-display">
<%= ic.name %>
</span>
</div>
</div>
</div>
<% end %>
</div>
多一点信息。
代码中的console.log
未被触发,并且gon.category_to_start
已定义。页面上的所有其他jquery都运行得很好。
在此页面上,它正在加载application.js
以及包含相关代码的单独orders/new.js
。它首先加载jquery,然后加载application.js
然后new.js
。为了论证,我只是尝试将代码片段加载到application.js
中,但它也没有在那里工作。这在本地服务器中工作正常。
答案 0 :(得分:1)
如果您正在使用Turbolinks(默认设置为rails项目),则应使用page:load
作为事件。
$(document).on("page:load", function() {
console.log("about to trigger initial click");
$(".category-selector[data-id='"+gon.category_to_start+"']").click();
});
注意强>:
如果您处于生产模式,请确保运行bin/rake assets:precompile
以使资产保持最新状态。
答案 1 :(得分:0)
问题似乎在于这一行
$(".category-selector[data-id='"+gon.category_to_start+"']").click()
没有gon.category_to_start
的引用,因此data-id
可能会获得一些未定义的值。
您还可以检查console.log
是否记录了任何值
&#34;露营&amp;背包&#34;应该是自动选择的。
但我看到category-selector
位于div
元素上。您是否选择div,因为自动选择适用于复选框或单选按钮
答案 2 :(得分:0)
为什么在选择器中包含data-id? 您可以在文档就绪
上触发$('。classname')。触发器。('click')答案 3 :(得分:0)
facepalm回答:预编译资产