jQuery Mobile Slider 禁用点击事件
阿子原创,转载请注明出处。
在使用jQuery Mobile Slider时,发现在页面上下拖动时,很容易不小心触发Slider的点击事件,从而造成误操作。为此需要禁用Slider的点击事件。
官方API并没有提供禁用点击事件的事件的方法,因此要实现这一功能只能另辟蹊径。
留意到点击Slider时都要触发一个mousedown方法改变滑块所处的位置,不妨重写这个方法,在mousedown事件触发时,保持原有的滑块位置不变。
实现方法
首先找到要操作的对象:
控制代码:
/*** 控制滑块任意位置点击事件不可用**/<br />function disableSliderTrack($slider) {<br /> $slider.bind("mousedown", function (event) {<br />var x = event.pageX;<br />var y = event.pageY;<br />var $handle = $(this).find(".ui-slider-handle");<br />var left = $handle.offset().left;<br />var right = left + $handle.outerWidth();<br />var top = $handle.offset().top;<br />var bottom = top + $handle.outerHeight();<br />return (x >= left && x <= right && y >= top && y <= bottom);<br /> });<br />}<br />
在页面加载时初始化所有滑块对象
$(function(){ <br /> disableSliderTrack($(".ui-slider-track"));<br />});<br />
至此大功告成。条条大道通罗马,通过重写控件的mousedown方法也能实现对click事件的“禁用”。
相关推荐
yFifhting 2014-01-16
taizuduojie 2019-11-08
有心就有方向 2014-01-16
82244951 2013-06-04
81751330 2012-09-10
Yvettre 2019-06-20
delmarks 2011-11-24
lilongok 2015-04-16
hgzhang 2018-01-31
killgod 2017-12-09
李大仁 2019-04-26
RyanB 2015-03-16
Mr小五 2016-05-13
Clarence 2016-04-22
前端档案 2019-04-21
84533871 2019-04-21
87951536 2013-05-29
mnbvcxz 2011-07-20