2012-03-28 3 views
4

jQuery MobileのWebサイトにフッターがあります。jQuery Mobileのフッターが表示され、ユーザーが背景をクリックすると表示されなくなるのはなぜですか?

<div data-role="footer" data-position="fixed"> 
    <div data-role="navbar"> 
     <ul> 
      <li><a href="/page1">Page 1</a></li> 
      <li><a href="/logout">Logout</a></li> 
     </ul> 
    </div> 
</div> 

Google Chromeでは、ユーザーが背景をクリックするとフッターが消えます。ユーザーがバックグラウンドを再びクリックすると、フッターが表示されます。どうして?これは意図的な機能ですか?

答えて

10

デフォルトでは、これが有効になっています。これはJQMで無効にするコードです。

$(document).on('pageinit','[data-role=page]', function(){ 
    $('[data-position=fixed]').fixedtoolbar({ tapToggle:false}); 
}); 

私はタポールイベントにバインドするのが好きです。それは私にはもっと意味がある。

$(document).on('taphold', '[data-role=page]', function(){ 
    $('[data-position=fixed]').fixedtoolbar('toggle'); 
}); 

使用しているJQM v 1.0.1では、.on()メソッドを使用できません。 onメソッドは、jquery 1.7の時点では新しいものです。簡単な解決策は、あなたのヘッダに次の属性を追加することです

$(document).delegate('[data-role=page]','pageinit', function(){ 
    $.mobile.fixedToolbars.setTouchToggleEnabled(false); 
}); 
+0

このソリューションはあまりにも複雑すぎる、はるかに簡単な方法があります –

+2

このソリューションは、すべてのページに対して構成できるので、さらに強力です。私の最後のプロジェクトには数千のJQMページが含まれていました。私はdata-tap-toggle = falseを1000回以上入力しないことをお勧めします。 – codaniel

9

data-tap-toggle="false" 

...とフレームワークう.delegate()(.live上推奨)ので、これを実行されたを使用してあなたのためにそれを世話してください。

詳細については、Toolbar Widget's tapToggle optionを参照してください。

+0

あなたのソリューションはJQM 1.0.1では動作しません。 – codaniel

+1

OPにjQMバージョンが指定されていません –

関連する問題