导航其他页面后,JQuery停止工作

时间:2016-12-06 08:35:31

标签: javascript jquery ruby-on-rails

在我的rails应用程序上,我可以使用代码在可以单击链接的表上有一行: 应用程序/资产/ Javascript角/ custom.js:

var main = function() {
  $("#my_table tr").on('click', function() {
    window.location = $(this).data("link")
  });
};
$(document).ready(main);

HTML:

<table class="table" id="my_table">
    <thead>...</thead>
    <tbody>
      <tr data-link= "<%= my_path(myobject) %>">
       <td><%= myobject.name %></td>
       <td><%= myobject.email %></td>
    </tbody>
 </table>

但是,在访问其他页面并返回包含该表的页面后,行不再可单击。它只有在刷新浏览器时才有效。我需要做什么才能在切换页面后不停止功能?

3 个答案:

答案 0 :(得分:0)

你真的在TR元素中有data-link="http://domain.com/path"吗?你没有说出TR的样子......

对于重定向,要模拟您单击可以使用的链接:

window.location.href = $(this).data("link")

希望它有所帮助!

答案 1 :(得分:0)

我认为Navnit Mishra的意思是不使用$( "#my_table tr" ).one( "click", function() {作为事件处理程序,而是使用

$( "#my_table tr" ).live( "click", function() {(your_event)})

处理您的活动。 .live允许您在将来为类中的元素附加事件处理程序。 jquery网站上提供了details for .live in jquery

答案 2 :(得分:0)

这可能与turbo-links有关,我在使用Turbolinks和Rails 5时遇到了许多夸大的Js错误。

尝试:

$( document ).on('turbolinks:load', function() {
  // your code
}

而不是

 $(document).ready(main)

希望有所帮助