2012-02-22 2 views
1

は、私は体がスクロールすることができないので、それははるかに少ない「ウェビー」を見て作る..whichこの単一要素の一般的なpreventDefaultを元に戻しますか?私のモバイルウェブアプリで

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

を持っています。

は残念ながら、これはまた、私は、この特定の要素のためのpreventDefaultを逆にするにはどうすればよい

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

(クロームでは正常に動作し、iPhoneのみ)を作業から私が持っている入力スライダーを停止していますか?

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

答えて

1

はこれを試す型範囲の入力がない場合にのみあなたがe.targetとのpreventDefaultをチェックすることができ

+0

ニース! hasAttributeバージョンで終わった、ありがとう! – jenswirf

1

使用されていますpreventDefault以外の何かを行う

document.ontouchmove = function(e){ 
     if(e.target.hasClass('slider')) 
     { //dosomething } 
     else 
{ e.preventDefault(); 
} 
    } 
0

次のように行うことができますどのように、どこにこのクラスのスライダー:ターゲットは

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