2012-01-18 17 views
13

jquery Mobile 1.0を使用しています。jqueryのスライダ入力ボックスを隠す

私はこのhtmlコードを持っています。このような

<label for="slider" class="ui-hidden-accessible"> 
    Input slider: 
</label> 
<input type="range" name="slider" id="@(Model.QuestionNo)_slider" value="25" min="0" max="100" /> 

そのレンダリング: enter image description here

は、しかし、私は赤を削除するには、一部をマーク。私はスライダー部分だけを表示したい。

どうすればいいですか?

答えて

14

あなただけのアップ/ダウンの矢印を取り除きたい場合は、あなたが指定した幅/高さとoverflow : hiddenを持つ要素に入力をラップすることができます:

$(".ui-slider-input").wrap($('<div />').css({ 
    position : 'relative', 
    display : 'inline-block', 
    height : '36px', 
    width : '45px', 
    overflow : 'hidden' 
})); 

それともフレデリック・ハミディが述べたように、あなただけのスライダが表示されますすべて一緒にして唯一の要素を非表示にすることができます。 (あなたはJSで行うようにあなたが時間にCSSの実行を持っていないので、いいです)http://jsfiddle.net/EWQ6n/1/

はまた、あなたがCSSで入力要素を非表示にすることができます:ここでは

は、上記のコードのデモです:ここでは

.ui-slider-input { 
    display : none !important; 
} 

は、CSSを使用したデモです:http://jsfiddle.net/EWQ6n/2/

更新

!importantキーワードを使用する代わりに、より具体的なCSSルールを作成して、jQuery Mobileクラスよりも使用するようにすることもできます。例は次のようになります。

.ui-mobile .ui-page .ui-slider-input, 
.ui-mobile .ui-dialog .ui-slider-input { 
    display : none; 
} 
+0

:!どれも重要。 }それは私のために働いた – Chakradhar

+0

ありがとうジャスパー - "重要な"部分は実際にキーです、そうでなければ動作しません。 (クロムでは、少なくとも) – Anthony

+0

@ジャスパー、素敵な答え....追加で、私は入力ボックスを中央にスライダーの上に表示したいのですか? –

3

手動で入力コントロールを隠すことができます:

$("#yourPage").live("pageinit", function() { 
    $(".ui-slider-input").hide(); 
}); 
5
input.ui-slider-input { 
    display: none; 
} 
3

はあなただけあなたはそれがCSSアプローチを使用して行うと、あなたが入力を壊すことtype="text" data-type="range"

<input type="text" data-type="range" name="slider" id="@(Model.QuestionNo)_slider" value="25" min="0" max="100" /> 
1

を使用し、アップ/ダウン矢印を取り除きたい場合はその他の出願。だから、それを隠すために入力にclass="ui-hidden-accessible"クラスを追加してください。

class="ui-hidden-accessible"labelから削除します。

あなたのアプローチは正しいです。しかしclass="ui-hidden-accessible"labelにないinputに追加する必要があります。

あなたのコードは次のようにする必要があります:

<label for="slider">Input slider:</label> 
<input type="range" name="slider" id="@(Model.QuestionNo)_slider" 
    value="25" min="0" max="100" class="ui-hidden-accessible"/> 

チェックこのSAMPLE DEMO

+0

このソリューションの問題点は、入力ボックスが隠されているにもかかわらず、左側にまだスペースが確保されていることです。 – Muis

1
<input type="range" name="slider_sodio" id="slider_sodio" value="0" min="0" max="3" step="1" class="ui-hidden-accessible" /> 

それanoyを見て、私はあまりにもこれをやってみたかったが、私

.ui-slider-track { 
    margin: 0 15px 0 68px; ----> change to 10 
} 
+1

実際に古いコードを表示してから、新しいコードを適切な編集内容で表示すると便利です。 – Kevin

2

をオフセットまた、スペースがなくなることを望んでいた。私はdiv要素に.NO-番号を追加

<div data-role="rangeslider" data-mini="true" class="no-number"> 
    <input type="range" name="Morn" id="Morn" data-mini="true" value="720" min="0" max="1439"> 
    <input type="range" name="Night" id="Night" data-mini="true" value="10800" min="0" max="1439"> 
</div> 

注意:私はこのこの方法(私は範囲スライダを使用しています)を達成しました。

CSSで次に

/* Used to remove the number next to the slider.*/ 
.no-number .ui-slider-input 
{ 
    display : none; 
    width: 0px; 
} 

/* Used to remove the space where the number was. */ 
.no-number .ui-rangeslider-sliders 
{ 
    margin: 0 5px; !important 
} 

私はすべて私が代わりに数字の時間のための範囲スライダを使用しようとしているということです大きな問題の一部としてこれをやっているので、私はそれらを置き換えます見出しのある要素は、時間を表示する関数で変更することができます。

これは完璧な選択ではないかもしれませんが、どこにスペースを戻すべきか分かりませんでしたので、ここに投稿すると思いました。

1

あなたは以下のように入力スライダーを削除することができます:

CSSの.ui-スライダー入力{ ディスプレイで行わ
input.ui-slider-input { 
     display: none; 
     width: 0; 
    } 


    .ui-slider-track { 
     margin: 0 15px 0 15px !important; 
    } 
関連する問題