0

私はjqueryモバイルを使用しており、入力ボックスがタッチされ、ユーザーが背景色を削除したいテキストを入力したときにのみ、入力ボックスの背景色を変更したい.これまでのところ、私はこれを行っています

<input type ="text" id="name" placeholder="type">

js

$("#name").click( function(event) {
         $(this).addClass('tap-button');
    });

CSS

.tap-button{
    background:red;}

ただし、テキストを入力すると背景色が変わりません。助言がありますか?

4

2 に答える 2

3

jQuery Mobile スタイルを正しく操作するには、DOM に挿入された HTML マークアップを JQM がどのようにレンダリング/拡張するかを理解する必要があります。

の背景色を変更するには、 を使用しinputてスタイルをその親に追加する必要があります。これは、コードを拡張した後に JQM によって追加されます。divclosestdiv

デモ

$('#name').on('click', function () {
 $(this).closest('div').addClass('tap-button');
 $(this).on('keypress', function () {
  $(this).closest('div').removeClass('tap-button');
 });
});

これは、jQuery Mobile がレンダリングする方法ですinput

<div class="ui-input-text ui-shadow-inset ui-corner-all ui-btn-shadow ui-body-c">
 <input type="text" id="name" placeholder="type" class="ui-input-text ui-body-c">
</div>
于 2013-05-14T07:23:31.747 に答える