首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >HTML5范围的onChange事件

HTML5范围的onChange事件
EN

Stack Overflow用户
提问于 2011-03-02 17:30:25
回答 9查看 83.3K关注 0票数 71

目前,我的range输入上的onChange事件在每一步都会触发。

有没有办法阻止这个事件触发,直到用户松开滑块?

我正在使用范围来创建一个搜索查询。我希望能够在每次表单更改时运行搜索,但在滑块移动的每一步都发出搜索请求太多了。

下面是代码原样:

HTML:

代码语言:javascript
运行
复制
<div id="page">
    <p>Currently viewing page <span>1</span>.</p>
    <input class="slider" type="range" min="1" max="100" step="1" value="1" name="page" />
</div>

JavaScript:

代码语言:javascript
运行
复制
$(".slider").change(function() {
    $("#query").text($("form").serialize());
});

这有帮助吗?

EN

Stack Overflow用户

发布于 2011-03-02 20:59:08

一个问题是,AFAIK的HTML5并没有定义何时触发onchange事件,所以它很可能在不同的浏览器上是不同的。您还必须考虑到,浏览器实际上不必将input type=range呈现为滑块。

您唯一的选择是,您必须内置一种机制,以确保您的搜索不会被频繁触发,例如,检查搜索当前是否正在运行并在运行时中止,或者确保搜索最多每x秒触发一次。

后者的快速示例(只是一个快速的hack,未经测试)。

代码语言:javascript
运行
复制
var doSearch = false;

function runSearch() {
   // execute your search here 
}

setInterval(function() {
  if (doSearch) {
     doSearch = false;
     runSearch();
  }
}, 2000); // 2000ms between each search.

yourRangeInputElement.onchange = function() { doSearch = true; }
票数 6
EN
查看全部 9 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5165579

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档