ready函数在每个页面中触发

ready function triggers in every page

本文关键字:函数 ready      更新时间:2023-09-26

我有一个rails应用程序,如果用户没有登录,我将重定向到一个页面,该页面有一个带类的br标记。像这个

<br class="logged">

在准备好该函数的Javascript中,我触发了一个模态,如下所示。

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

这运行得很好,只是这个模式在应用程序的每个页面上都会被触发。我的意思是,br标签只存在于应用程序的页面中,我不明白它是如何为每个页面做好准备的。如果有人能说出我的方法出了什么问题,那将是非常有帮助的。

ps:它是rails应用程序

你可以试试这个:

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

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

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

MarcoSantino的答案将满足您的需求,尽管您可能会发现将logged-in类添加到body标记中而不是插入新的br标记,然后在JavaScript中使用以下内容更简单:

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