【发布时间】:2011-07-07 03:21:01
【问题描述】:
目前,我的范围输入上的 onChange 事件在每一步都会触发。
有没有办法阻止此事件触发,直到用户放开滑块?
我正在使用范围来创建搜索查询。我希望能够在每次更改表单时运行搜索,但在滑块移动的每一步发出搜索请求太多了。
代码如下:
HTML:
<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:
$(".slider").change(function() {
$("#query").text($("form").serialize());
});
这有帮助吗?
【问题讨论】:
-
这是 WebKit 和 IE 实现中的一个错误,因为 HTML 规范中存在歧义。此后,规范已经澄清,在释放旋钮之前不应触发“更改”事件。要在用户滑动旋钮时获取值,应使用“输入”事件。但是,WebKit 和 IE 尚未修复此实现错误。 HTML 规范修订:html5.org/tools/web-apps-tracker?from=7786&to=7787