Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 如何使箭头键在Rails/Twitter引导图像滑块(carousel)应用程序中工作?_Jquery_Ruby On Rails_Ruby_Twitter Bootstrap - Fatal编程技术网

Jquery 如何使箭头键在Rails/Twitter引导图像滑块(carousel)应用程序中工作?

Jquery 如何使箭头键在Rails/Twitter引导图像滑块(carousel)应用程序中工作?,jquery,ruby-on-rails,ruby,twitter-bootstrap,Jquery,Ruby On Rails,Ruby,Twitter Bootstrap,我正试图使这个网站的旋转木马应用程序工作。除了左箭头键和右箭头键外,其他一切都正常工作。我使用的环境只是一个普通的Rails应用程序环境。我正在使用twitter引导程序rails() 我做了一些调试,发现如果手动包含jQuery和引导库,箭头键就可以工作了。我是这样做的: class SomeController < ApplicationController def some_action render layout: false end end class Some

我正试图使这个网站的旋转木马应用程序工作。除了左箭头键和右箭头键外,其他一切都正常工作。我使用的环境只是一个普通的Rails应用程序环境。我正在使用twitter引导程序rails()

我做了一些调试,发现如果手动包含jQuery和引导库,箭头键就可以工作了。我是这样做的:

class SomeController < ApplicationController
  def some_action
    render layout: false
  end
end
class SomeController
然后将整个示例从我上面提到的网站复制并粘贴到视图中。据我所知,此控制器/视图设置不加载任何布局、Javascript、样式表等

如果我在app/views/layouts/application.html.erb文件中输入以下内容,则可以实现类似的效果:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>

而不是默认内容:

<%= stylesheet_link_tag    'application', media: 'all', 'data-turbolinks-track' => true %>
<%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
<%= csrf_meta_tags %>
true%>
正确%>
我还尝试删除turbolinks参数对,但箭头键仍然不起作用


我错过了什么?如何以系统的方式对此进行调试?我尝试跟踪浏览器开发工具(Chrome profiler)上触发的事件,但似乎无法从所有输出中缩小实际的左/右箭头按键事件。

bootstrap.min.js
jquery.min.js
文件添加到您的资产目录:
app/assets/javascripts
。还要确保在应用程序清单中需要它们:
app/assets/javascripts/application.js
。如果您的Gemfile中有jQuery或bootstrap gem,请删除它们。这些步骤将获得与将这两行添加到布局中相同的效果:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>

该示例应该仍然有效,但至少现在您的设置将与传统的Rails环境相匹配

在chrome的web inspector中监视javascript控制台,查看在使用插件时是否出现任何javascript错误


如果要覆盖按键事件,请尝试以下操作:

<script>
$("body").keydown(function(e) {
  if(e.keyCode == 37) { // left
    $("#myCarousel").carousel("prev");
  }
  else if(e.keyCode == 39) { // right
    $("#myCarousel").carousel("next");
  }
});
</script>

$(“正文”).keydown(函数(e){
如果(e.keyCode==37){//left
$(“我的旋转木马”)。旋转木马(“上一代”);
}
如果(e.keyCode==39){//right
$(#myCarousel”)。carousel(“next”);
}
});

参考资料:

谢谢您的回复。我认为twitter引导程序rails gem已经做到了这一点,因为引导程序组件已经出现在我的页面上,jQuery代码已经工作了,而没有添加这两个文件。除了左/右箭头键外,所有功能都正常。顺便说一句,我还通过在按下某个键时发出警报来测试了这一点,页面确实收到了一个按键事件。公平地说,我只是想确保您的bootstrap和jquery版本与示例相匹配(gems往往是落后的版本)。请参见我的编辑以覆盖按键向下事件。