[英]CoffeScript works only after page reload in Rails app
我有两个选择,第二个根据第一个的值更改。 我使用CoffeScript。
<%= f.collection_select :type, RequestType.order(:typeName), :id, :typeName, {include_blank:true }, {:class => "types"} %> <%= f.grouped_collection_select :subtype, RequestType.order(:typeName), :RequestSubTypes, :typeName, :request_type_id, :subTypeName, {include_blank:true}, {:class => "subTypes" } %>
jQuery -> subTypes = $(".subTypes").html() $(".subTypes").parent().hide() $(".types").change -> type = $(".types :selected").text() options = $(subTypes).filter("optgroup[label='#{type}']").html() if options $(".subTypes").html(options) $(".subTypes").parent().show() else $(".subTypes").empty() $(".subTypes").parent().hide()
<%= link_to "link", new_request_path %>
我相信您正在使用turbolinks
。 这样,您的jquery引导程序将在您最初访问的页面上执行一次,并且不会与其他页面的DOM挂钩,因此您的回调不会赶上。
您有几个选择来处理它。
在布局data-turbolinks-track='false'
的javascript_tag
上使用属性data-turbolinks-track='false'
。 这样,js文件将与正文一起在每次页面加载时加载并执行。
将整个javascript_tag
调用移至您的body
底部。
使用jquery-turbolinks
gem。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.