撤消对单个元素的一般preventDefault?

时间:2012-02-22 10:54:10

标签: javascript

在我的移动网络应用中,我有这个

//Prevent scrolling in entire document
document.ontouchmove = function(e){ e.preventDefault(); }

..因为身体无法滚动,所以它看起来要少得多'webby'。

不幸的是,这也阻止了我工作的输入滑块(仅限iPhone,在Chrome中工作正常)

<input type="range" class="slider"  min="1" max="50">

如何撤消此特定元素的preventDefault?

3 个答案:

答案 0 :(得分:1)

只有当目标不是类型范围的输入时,您才可以检查e.target和preventDefault

document.ontouchmove = function(e){ 
   var $target = $(e.target);
   if($target.is('input') && $target.attr('type') === 'range'){
     //do nothing
   }else{
     e.preventDefault(); 
   }
}

答案 1 :(得分:1)

试试这个:

document.ontouchmove = function(e){
  if(e.target && e.target.className.indexOf('slider')==-1)
     e.preventDefault(); 
}

答案 2 :(得分:0)

如何使用此类滑块执行除preventDefault

之外的其他操作
 document.ontouchmove = function(e){
      if(e.target.hasClass('slider'))
         { //dosomething  }
       else
{   e.preventDefault(); 
}
    }