我有一个 Rails 应用程序,当单击链接时,jQuery 不会在页面上触发,尽管它应该是。我想要发生的是,如果单击链接,则警报消息消失并将 AJAX 响应发送到控制器。我已经关闭了点击链接的 turbolinks,以及加载的 jquery.turbolinks,这应该已经解决了这个链接的问题(过去也有)。我正在使用 Ruby on Rails 4。欢迎任何见解!
在我的 index.html.haml 文件中views
,我有
= link_to "To be added", "#", :class => "levelup", 'data-no-turbolink' => true
现在在我的application.js
文件javascripts
夹中的文件中,我加载了这些行:
//= require jquery
//= require jquery.turbolinks
//= require jquery_ujs
//= require turbolinks
//= require_tree .
该stats_uploader.js
文件位于javascripts
文件夹中,可能应该执行警报和 ajax 文件,其中包含以下内容:
$('.levelup').click(function() {
alert("Yeah");
var level = $('.playerlevel').text();
alert(level); //Pat
level++;
alert(level); //Pat
$.ajax({type: "GET",
url: $(this).attr("href"),
dataType: "script",
data: level ,
error: function() {
alert("AJAX failed");
},
success: function() {
alert("Success");
}
});
});
当我在页面上查看源代码时,我得到这些相关行,表明 stats_uploader 表单已加载,以及应用于元素的适当类。
<script data-turbolinks-track="true" src="/assets/jquery.turbolinks.js?body=1"></script>
<script data-turbolinks-track="true" src="/assets/turbolinks.js?body=1"></script>
<script data-turbolinks-track="true" src="/assets/stats_uploader.js?body=1"></script>
...
...
...
...
<div class='container'>
yessir
Player Level
<div class='playerlevel'>
1
</div>
<!-- TODO Make Buttons to click on -->
<a class="levelup" data-no-turbolink="true" href="#">To be added</a>
</div>