click() 在 rails 3.2.1 中不起作用 - 自动点击

click() not working in rails 3.2.1 - Auto Click

本文关键字:不起作用 rails click      更新时间:2023-09-26

我正在使用 Rails 3.2.6 构建一个应用程序,我想创建使页面的一部分在一段时间后自动重新加载的功能。这是我所做的:

  1. 我创建了一个名为 _hottest_beep 的部分,重新加载的内容应该在其中

  2. 我在主页
    上这样称呼部分

    <div class="update_beep">
    <%=render :partial=>"hottest_beeps"%>
    </div>
    
  3. 我创建了一个主.js.erb 文件

    $(".update_beep").html("<%= escape_javascript(render("hottest_beeps"))%>")
    
  4. 我在主页上添加了一个链接,当单击该链接时,会自动重新加载部分

    <span ><%=link_to'View',{:controller=>'users',:action=>'main'},:remote=>true,:class=>'auto_click'%>
    </span>
    <div class="update_beep">
    <%=render :partial=>"hottest_beeps"%>
    </div>
    
  5. 然后我创建了一个名为 auto_click 的 JavaScript 文件,它将每 1 秒自动单击它一次

    var fsecs = 1000;
    function feedTimer1()
    {
        if (fsecs == 0)
        {
            $('.auto_click').click();
            fsecs =1000;
            self.status = fsecs
            ftimerRunning = true
            ftimerID = self.setTimeout("feedTimer1()")
        }
        else
        {
            self.status = fsecs
            fsecs = fsecs - 1
            ftimerRunning = true
            ftimerID = self.setTimeout("feedTimer1()")
        }
    }
    
     window.onload = feedTimer1();
    

但似乎点击甚至不起作用。当我加载页面时,部分保持不变,但是当我单击链接时,它自己就可以工作了。

注意:我还调用了 application.html.erb 文件中的auto_click.js文件,该文件应将其加载到页面

我不确定我是否理解你的 js,但这应该有效:

$(function() {
  function tick() {
    $(".auto_click").click();
    setTimeout(tick, 1000);
  }
  tick();
};

附带说明一下,您不应该在函数中执行 setTimeout,因为您最终堆积请求。如果您需要为此编写代码,请告诉我。

编辑:为此,您可以使用以下内容:

$(function() {
  window.auto_click_tick = function() {
    $(".auto_click").click();
  }
  window.auto_click_tick();
};

并在您的 js.erb 文件中,添加此

setTimeout(window.auto_click_tick, 1000);

谢谢大家的帮助。但经过几个小时的工作,我最终解决了它。问题是我的jquery文件有一个错误。改变它解决了:)的问题