我正在尝试通过使用AJAX渲染部分轨道来将滑块设置为我创建的弹出窗口。弹出窗口工作正常,但我的Javascript似乎没有任何效果。
这基本上就是我的代码。
的javascript
$(document).ajaxSuccess(function(event, xhr, settings) {
$(xhr.responseText).appendTo('body').modal();
});
$('.flexslider').flexslider({
animation: "slide"
});
弹出
.col-md-6
.flexslider
%ul.slides
%li
%img(src="http://g-ecx.images-amazon.com/images/G/01/kindle/dp/2013/KT/feature-cs._V355642982_.jpg")
%li
%img(src="http://g-ecx.images-amazon.com/images/G/01/kindle/dp/2013/KT/feature-camera._V355723652_.jpg")
%li
%img(src="http://g-ecx.images-amazon.com/images/G/01/kindle/dp/2013/KT/feature-wifi._V355643083_.jpg")
%li
%img(src="http://g-ecx.images-amazon.com/images/G/01/kindle/dp/2013/KT/feature-cs._V355642982_.jpg")
控制器
render partial: 'product', locals: {product: @product}, layout: false if request.xhr?
答案 0 :(得分:0)
我认为您的JS可能需要从dom ready块调用才能工作。
这就是我用方便的方式包含js的方法。在我的布局中,我屈服于两个代码块:一个用于javascript标记,另一个用于在dom ready块中运行的代码。所以我的布局看起来像这样:
#at the bottom of the body tag (inside it)
<%= yield :javascript_includes %>
<script type="text/javascript">
$(function() {
<%= yield :jquery_ready %>
});
</script>
这使我能够将JS添加到我的部分和模板中,如下所示:
<% content_for :javascript_includes do %>
<% javascript_include tag "someLibrary.js" %>
<% end %>
和/或
<% content_for :jquery_ready do %>
$("#foo").click(function(){ doStuff()});
<% end %>
这些包含可以在模板/部分中的任何地方完成,但我的惯例是始终将它们放在顶部,以使它们更加明显。