Rails如何检测是不是使用javascript / jQuery插入了部分

Posted

技术标签:

【中文标题】Rails如何检测是不是使用javascript / jQuery插入了部分【英文标题】:Rails how to detect if a partial was inserted using javascript/jQueryRails如何检测是否使用javascript / jQuery插入了部分 【发布时间】:2012-10-07 22:04:49 【问题描述】:

如何在 javascript 中检测当前是否正在显示部分内容?

所以使用半伪代码并尝试尽可能简单化以传达我的意图,

在我的控制器中,我有:

def index
    if (request.xhr?)//coming from pagination ajax request
        @sessions = Session.paginate(.......)
        if @sessions.empty?
            render: partial => 'nomoresessions'
        else
            render: partial => 'sessions'
        end
    else//standard request to display
        @sessions = Session.paginate(.....)
    end

end

在我的 javascript 中:

function doCheck()
  var canContinuePaginating = true;
  if (nomoresessions partial was inserted)//<--- This is what I need to figure out
      canContinuePaginating = false;
  
  if (canContinuePaginating)
      //do stuff
    


如果有人想知道我为什么需要这个,我将通过部分将行附加到表格的底部,并在用户滚动时使用分页,一旦我到达底部,我想附加某种视觉指示器通过 nomoresessions 部分表明我们位于列表的底部。然后,如果用户继续尝试滚动,我想通过 javascript 检测 nomoresessions 部分当前正在显示,因此不再尝试分页。

【问题讨论】:

【参考方案1】:

我能想到的一种简单方法是,您可能希望在“nomoresessions”部分中添加一些类或 id,例如

<li class="end-of-list">
  <img src="end.png" />
</li>

然后在你的doCheck 你可以这样做:

function doCheck()
  var canContinuePaginating = true;
  if ($('ul.content .end-of-list').length) 
    canContinuePaginating = false;

【讨论】:

这对我不起作用。不知道为什么。部分正在插入和显示。我不断收到 $('ul.content .end-of-list').length = 0

以上是关于Rails如何检测是不是使用javascript / jQuery插入了部分的主要内容,如果未能解决你的问题,请参考以下文章

如何在客户端使用 JavaScript 来检测页面是不是已加密?

如何使用 JavaScript 检测文档中是不是存在 HTML5 有效的文档类型?

使用 JavaScript,如何检测访问者的设备上是不是存在三星 Galaxy 商店

如何检测 JavaScript 中的哈希后 URL 是不是已更改

如何随时检测内部的Rails环境

Javascript:如何检测单词是不是突出显示