每页都有就绪功能触发器

时间:2016-05-11 07:25:33

标签: javascript jquery ruby-on-rails

我有一个rails应用程序,如果用户没有登录,我将重定向到一个页面,其中有一个带有类的br标签。喜欢这个

<br class="logged">

在准备该功能的Javascript中,我按如下方式触发模态。

$(document).ready(function(){

 $('.logged').ready(function(){
    $('#open-login').click();
 });

});

这很好用,除了这个模态在应用的每个页面都被触发。我的意思是br标签只存在于应用程序的页面中,每个页面的准备是我不理解的。如果有人能说出我的方法出了什么问题,那将会有很大的帮助。

ps:它的铁路应用

2 个答案:

答案 0 :(得分:1)

你可以试试这个:

$(document).ready(function(){

if ($('.logged').length > 0)
    $('#open-login').click();
 }

});

在if条件中,您可以声明特定页面的元素,并且只在该页面中您可以执行操作。

答案 1 :(得分:1)

jQuery .ready()方法只能在与当前文档匹配的jQuery对象上调用。将它附加到$('.logged')选择器仍然会在文档准备好时调用其处理函数 - 它不关心选择器。

MarcoSantino's answer可以满足您的需求,但您可能会发现将logged-in类添加到body标记而不是插入新的br标记更清晰,然后在JavaScript中使用以下内容:

$(document).ready(function(){
  if ($(body).hasClass('logged-in')) {
    $('#open-login').click();
  }
})