在使用jQuery Mobile Slider時,發如今頁面上下拖動時,很容易不當心觸發Slider的點擊事件,從而形成誤操做。爲此須要禁用Slider的點擊事件。ide
官方API並無提供禁用點擊事件的事件的方法,所以要實現這一功能只能另闢蹊徑。留意到點擊Slider時都要觸發一個mousedown方法改變滑塊所處的位置,不妨重寫這個方法,在mousedown事件觸發時,保持原有的滑塊位置不變。ui
實現方法:this
1 /*** 控制滑塊任意位置點擊事件不可用 ***/ 2 function disableSliderTrack($slider) { 3 4 $slider.bind("mousedown", function (event) { 5 6 var x = event.pageX; 7 var y = event.pageY; 8 9 var $handle = $(this).find(".ui-slider-handle"); 10 11 var left = $handle.offset().left; 12 var right = left + $handle.outerWidth(); 13 var top = $handle.offset().top; 14 var bottom = top + $handle.outerHeight(); 15 16 return (x >= left && x <= right && y >= top && y <= bottom); 17 18 }); 19 }
1 $(function(){ 2 disableSliderTrack($(".ui-slider-track")); 3 });
至此大功告成。spa
條條大道通羅馬,經過重寫控件的mousedown方法也能實現對click事件的「禁用」。code