2

ページをスクロールし、リストビュー ボタンを押してそのスクロールを開始すると、ボタンはスクロールのために強調表示されたままになり、スクロールが終了した後も強調表示されたままになります。スクロールの開始時にこれを選択解除するにはどうすればよいですか?

これを行うと機能します:

$(document).bind('scrollstart', function(ev) {
    $('*').blur();
});

しかし、これは非効率的で、スクロールが始まる前にページが遅れる原因とaなりliます。ui-btnui-li

4

1 に答える 1

2

jQuery Mobile 疑似ページのリスト項目をクリックすると、基本的ui-btn-down-*にリスト項目にクラスが追加されます (*はテーマ文字の 1 つを示します)。

ユーザーがスクロールを開始したら、このクラスを削除できます。以下に例を示します。

$(document).on("scrollstart", function () {
    setTimeout(function () {
        $.mobile.activePage.find('.ui-li').removeClass('ui-btn-down-a ui-btn-down-b ui-btn-down-c ui-btn-down-d ui-btn-down-e');
    }, 100);
});​

アップデート

私の Droid XI でのテストでは、タイムアウトが強調表示された状態をより一貫して取り除くのに役立つことがわかりました。独自の目的でタイムアウトの期間をいじることができます。

ここにデモがあります:http://jsfiddle.net/WrqbG/7/

アップデート

クラスが適用されていることにも気付き.ui-btn-hover-*ました。強調表示されていないリストに戻るには、それらのクラスも削除する必要があります。

.removeClass('ui-btn-down-a ui-btn-down-b ui-btn-down-c ui-btn-down-d ui-btn-down-e')

次のように変更します。

.removeClass('ui-btn-down-a ui-btn-down-b ui-btn-down-c ui-btn-down-d ui-btn-down-e ui-btn-hover-a  ui-btn-hover-b  ui-btn-hover-c  ui-btn-hover-d  ui-btn-hover-e')
于 2012-08-29T23:54:35.683 に答える