2017-04-09 5 views
2

jQueryモバイルフレームワークを使用して開発された単純な2ページのWebサイトがあります。私は時代の選択のためにDateboxプラグインを使う必要があった。私のウェブサイトの両方のページは、divで区切られた同じ.phpファイル内にあり、適切にdata-role="page"となります。jQuery mobile Datebox CSSが正しく読み込まれない

私の唯一の問題は、日付ボックスがWebページの最初のページに存在する場合は正しく読み込まれますが、他のページではそのアイコンがめちゃくちゃになります。

<!DOCTYPE html> 
<html> 
<head> 
    <title>Home</title> 
    <meta charset="utf-8"> 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> 

    <meta name="viewport" content="width=device-width, initial-scale=1"> 
    <link rel="stylesheet" href="https://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.css"> 
    <script src="https://code.jquery.com/jquery-1.11.3.min.js"></script> 
    <script src="https://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script> 
    <link href="http://cdn.jtsage.com/jtsage-datebox/4.1.1/jtsage-datebox-4.1.1.jqm.min.css" rel="stylesheet" type="text/css"> 
    <script src="http://cdn.jtsage.com/jtsage-datebox/4.1.1/jtsage-datebox-4.1.1.jqm.min.js" type="text/javascript"></script> 


</head> 
<body> 

    <div data-role="page" id="index"> 
     <header data-role="header" data-position="fixed"> 
      <h1>Home</h1> 
     </header> 

     <div data-role="main" class="ui-content"> 
      <div class="ui-field-contain"> 
       <label for="datebox">Time (seconds)</label> 
       <input type="text" data-role="datebox" data-options='{"mode":"calbox"}'> 
      </div> 
     </div> 

     <footer data-role="footer" data-position="fixed" style="text-align:center;" class="ui-body-a"> 
      <div data-role="navbar"> 
       <ul> 
        <li><a href="#index" data-direction="reverse" class="ui-btn ui-icon-plus ui-btn-icon-left ui-btn-active ui-state-persist">Home</a></li> 
        <li><a href="#onoff" class="ui-btn ui-icon-plus ui-btn-icon-left">ON/OFF</a></li> 
        <li><a href="#timer" class="ui-btn ui-icon-plus ui-btn-icon-left">Timer</a></li> 
        <li><a href="#" class="ui-btn ui-icon-plus ui-btn-icon-left">Scheduler</a></li> 
       </ul> 
      </div> 
     </footer> 
    </div> 

    <div data-role="page" id="onoff"> 
     <header data-role="header" data-position="fixed"> 
      <h1>ONOFF</h1> 
     </header> 

     <div data-role="main" class="ui-content"> 

      <div class="ui-field-contain"> 
       <label for="datebox">Time (seconds)</label> 
       <input type="text" data-role="datebox" data-options='{"mode":"calbox"}'> 
      </div> 
     </div> 

     <footer data-role="footer" data-position="fixed" style="text-align:center;" class="ui-body-a"> 
      <div data-role="navbar"> 
       <ul> 
        <li><a href="#index" class="ui-btn ui-icon-plus ui-btn-icon-left">Home</a></li> 
        <li><a href="#onoff" data-direction="reverse" class="ui-btn ui-icon-plus ui-btn-icon-left ui-btn-active ui-state-persist">ON/OFF</a></li> 
        <li><a href="#timer" class="ui-btn ui-icon-plus ui-btn-icon-left">Timer</a></li> 
        <li><a href="#" class="ui-btn ui-icon-plus ui-btn-icon-left">Scheduler</a></li> 
       </ul> 
      </div> 
     </footer> 

    </div> 

</body> 
</html> 

次のイメージは、この問題を示しています。ページのロードで、page-role="page"id="index"との最初のdivがロードされ、dateboxアイコンが意図したとおりに動作します:

Home Page

をしかし、私はON/OFF]タブをフッターナビゲーションバーを使用して、2ページ目に移動した場合、私はこれを取得します変なアイコンの配置:

ON/OFF page

私が間違ってここに何が起こっているかを把握する助けてください。

答えて

0

user3889963が頭の上に釘を打ちます。

JQM for Dateboxのソースファイルをダウンロードし、直接頭の中でそれらを呼び出す。

<script src="../jtsage-datebox.min.js" type="text/javascript"></script> 
<link href="../jtsage-datebox.min.css" rel="stylesheet"> 

この前の質問では、それが直接インストールファイルを扱う。ここでCDN Jquery Mobile DateBox plugin only working when linked directly to page

経由でプラグインを使用してに問題があることを示しています。 enter image description here

+0

この回答は参考としてのみ追加されています。 –

0

一意の名前が問題です。

両方のページ内で同じ名前で日付ボックス項目を呼び出しているため、最初のものだけが正しくスタイル設定されます。

2番目のページの名前をdatebox2と変更するだけで問題は解決します。 "datebox"の最初の一意のIDを検索するためのラベルとして、そのスタイルを指定します。

<div data-role="main" class="ui-content"> 
      <div class="ui-field-contain"> 
       <label for="datebox2">Time (seconds)</label> 
       <input type="text" data-role="datebox" data-options='{"mode":"calbox"}'> 
      </div> 
     </div> 
+0

これは問題ではないようです。私はまだ= datebox2のラベルを変更した後も同じ出力が得られます – user3889963

+0

@ user3889963この回答は間違っていますが、Dateboxフィールドの一意の名前を付けることをお勧めします。まもなくJQMでdateboxの値をターゲットにするとき。 –

1

うーん、私はなぜこれがなく、ページ間dateboxプラグインを使用するために私を有効に頭の中でローカルファイルの代わりに、CDNリンクを使用しているかわかりません。ファイルはこちらをご覧くださいダウンロードビルダーを使用して生成された:

http://dev.jtsage.com/DateBox/builder/

関連する問題