【问题标题】:HTML SELECT - possible to have a delayed onchange?HTML SELECT - 可能有延迟的 onchange?
【发布时间】:2012-01-19 01:20:08
【问题描述】:

我有一个 SELECT 框,当 SELECT 的值更改时,它会使用 AJAX 更新 DIV。

这个 AJAX 例程很慢,所以我只想在绝对必要时调用它。

我为此使用了 onchange 事件。

在 Firefox 和 Chrome 中,当使用按键滚动浏览不同的选项时,这可以正常工作。 onchange 事件仅在离开 SELECT 时触发。

但在 Internet Explorer 中,每次按下箭头键时都会触发 onchange 事件。我知道大多数人都喜欢这个,但是由于 AJAX 调用速度很慢,这让我的 SELECT 真的很慢。

我需要的是某种延迟更新... onchange 应该仅在几秒钟后触发,而当用户仍在使用箭头键选择选项时不会影响更新。

有什么想法可以实现吗?

【问题讨论】:

    标签: html select onchange


    【解决方案1】:

    您可以使用 setTimeout 设置延迟(如果用户在超时到期之前更改,则可以使用 clearTimeout 取消它)。

    或者,如果您使用的是 jquery,请尝试查看队列,特别是延迟函数。

    在此处查看完整示例:Delay ajax request by x seconds and update only the last clicked request

    使用 jquery 和我建议的不同方法 - 我认为队列可以使它更简洁,但现在无法对其进行测试。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-08-17
      • 1970-01-01
      • 2014-07-11
      • 1970-01-01
      • 2018-01-20
      • 2021-10-05
      • 2021-09-16
      相关资源
      最近更新 更多