2017-03-20 13 views
1

モバイルでブートストラップinput-group-addonの位置を変えようとしました。 フロントエンドの可視性の観点から、私は欲しいものを手に入れました。入力はアドオンの後ろにありますが、#input-newsearchでjavascriptを実行しています。それはまだ最初の入力を見ているようです。私は何が不足しているのですか?これをどのように解決できますか?モバイルでブートストラップinput-group-addonと入力の切り替え

HTML:

<div class="input-group"> 
<input id="input-newsearch" class="form-control input-newsearch-desktop" type="text">                                   
<span class="input-group-addon" id="delete-newsearch">Delete</span> 
<span class="input-group-addon" id="remove-newsearch">Remove</span> 
<input id="input-newsearch" class="form-control input-newsearch-mobile" type="text">                                      
</div> 

はCSS:

.input-newsearch-mobile { 
display: none; 
visibility: hidden; 
} 

@media (max-width: 768px){ 
.input-newsearch-desktop { 
    display: none; 
    visibility: hidden;  
} 
.input-newsearch-mobile { 
    display: initial; 
    visibility: initial;   
}   
} 

のjavascript:

$('#delete-newsearch, #delete-newsearch').on('click', function() { 
$('#input-newsearch').val('');           
}); 

$('#input-newsearch').autocomplete({ 
source:'/source.php', 
minLength: 3, 
... 
}); 
+0

あなたもJavaScriptを投稿してください。犯人になる可能性のあるものの1つは、 'display:none;'実際には** DOMから要素を削除**し、 'visibility:hidden'は単に隠すことです。 '.input-newsearch-desktop'のメディアクエリで' display:none'を削除することができます。これは、削除されたJavaScriptを対象にすることができないためです。 –

+0

上記のjavascriptをご覧ください。私は入力のオートコンプリートを行い、クリアのためにボタンを使います。私がモバイル上の入力の上にボタンを持っているので、小さな画面で最初の入力要素を隠すと.val( '')もうまくいきません...デスクトップ上のすべてがうまく動いている場合 –

答えて

1

代わりにあなたの選択としてIDを使用しての私が代わりにクラスを使用します。

あなたが意図したとおりに動作しない理由は、IDが一度しか表示されないためです。同じIdを持つ複数の要素があり、そのうちの1つを参照しようとすると問題が発生します。クラス'.input-newsearch'

$('#delete-newsearch, #delete-newsearch').on('click', function() { 
$('.input-newsearch').val('');           
}); 

$('.input-newsearch').autocomplete({ 
source:'/source.php', 
minLength: 3, 
... 
}); 

スタイル

追加されたクラスinput-newsearch

<div class="input-group"> 
<input id="input-newsearch" class="form-control input-newsearch input-newsearch-desktop" type="text">                                   
<span class="input-group-addon" id="delete-newsearch">Delete</span> 
<span class="input-group-addon" id="remove-newsearch">Remove</span> 
<input id="input-newsearch" class="form-control input-newsearch input-newsearch-mobile" type="text">                                      
</div> 

のJavascript

変更IDセレクタ

+0

はより良いアプローチは、各入力アドオンに対してjavascriptのブロックを持ち、ウィンドウの幅に基づいて関連する関数を呼び出すことだけです。しかし、パフォーマンスの向上は基本的に0なので、上記のソリューションはうまくいくはずです。 –

+0

よろしくお願いいたします。これは助けになった! –

+0

私は助けてくれてうれしいです。コーディングを続けてください! –

関連する問題