1

我有一个点击处理程序,我在其中显示一大组元素中的下 15 个元素,这显然需要时间:它明显滞后,在此期间用户不知道发生了什么。

我目前正在研究解决此问题的两种方法:

  • 确保我们更有效地“取消隐藏”接下来的 15 个元素(请参阅相关问题)。
  • 确保我们显示一个微调器或类似的东西,以便用户知道“发生了什么事”

现在问题似乎是,如果我有如下点击处理程序:

  $('#facets-list').on 'click', 'a[data-show-next-15]', (event) ->
    event.preventDefault()
    $(this).find('span.spinner').show()
    $(this).parent().parent().find('li.hidden').slice(0, 15).removeClass('hidden')
    $(this).find('span.spinner').hide()

html 中的所有更改仅在处理程序完成之前可见。所以旋转器的显示和隐藏永远不会完成。

有没有办法以某种方式强制重绘?虽然可能效率不高,但对用户来说会更清楚。

4

1 回答 1

0

感谢@Paolo_Bergantino 的建议,我提出了以下建议:

  $('#facets-list').on 'click', 'a[data-show-next-15]', (event) ->
    event.preventDefault()
    $(this).find('span.spinner').show()
    self = $(this)
    setTimeout((() ->
      self.parent().parent().find('li.hidden:lt(15)').attr('class', '')
      setTimeout((() -> $('span.spinner').hide()), 2)
    ), 2)

微调器不旋转,但现在更清楚了:)

于 2013-05-07T15:55:12.480 回答