2017-10-14 15 views
-2

UPDATE:両方の機能をすることができます同じファイル内にある場合はjQuery:ある関数から別の関数に値を渡すには?

 $("document").ready(function() { 
     $("#startDate").datepicker({ 

      onSelect: function(dateText, inst) { 
       var dateAsObject = $(this).datepicker('getDate'); 
       var timestamp = dateAsObject.getTime(); // the timestamp of the date picked by user 
      } 
     }); 

     // how do I get the value of timestamp to show up here? 
     // It also needs to update every time onSelect changes the value. 
     alert(timestamp); 

    }); 

+0

2つの '$(document).ready(function(){})関数を持つ必要はありません。あなたが望むすべての機能を1つにまとめてください。 – VTodorov

+0

jqueryの関数は、単にjavascript関数です。 Jqueryは、イベントになるとあなたの人生を少し楽にしてくれるシンタックスシュガーの束です。準備完了のイベントハンドラはそれだけです。ページが読み込まれ、先着順と呼ばれるときに処理されます。あなたの最初のレディハンドラでは、日付ピッカーを設定していて、もう1つは時計を設定しています。あなたは正確に何をしようとしていますか? – scrappedcola

+0

はい、私は2つのdocument.readyが必要ではないことを知っていますが、1つに入れるとうまくいきません。 – WebDevBooster

答えて

1

これは非同期フローなので、イベントを処理する必要があります。このような

何かがおそらく動作するはずです:

$("document").ready(function() { 

    function setClock(startTime) { 
     return $('.clock').FlipClock(
      (new Date()).getTime()/1000 - startTime, 
      { 
       clockFace: 'DailyCounter' 
      } 
     ); 
    } 


    $("#startDate").datepicker({ 

     // ... all your (here irrelevant) options ... 

     onSelect: function(dateText, inst) { 
      // I assume this is an event handler that gets called every time your date changes. 
      // Here you have to update the timestamp on your second plugin. 
      setClock($(this).datepicker('getDate').getTime()); 
    }); 

    // initiate the clock 
    setClock((new Date(2017, 8, 11)).getTime()); 

}); 

だから最初に私が提供する日付と時計を設定することができます関数を宣言します。私はdatepickerを設定し、それを(想定された)チェンジハンドラで新しく選択した日付で時計を更新するように指示します。最後に、ユーザーが日付を選択する前に既に何かを表示するように時計を開始します(日付ピッカーの開始値と同じ日付を使用してください)。

再起動するのではなく、変更の際に時計を更新するのが理想的ですが、プラグインAPIがこれをサポートしているかどうかはわかりません。私は実際のプラグインを知らず、テストする方法がないので、これが実際に動作するかどうかはわかりません。私はそれが正しい方向にあなたを指していることを願っています。不明な点があればお気軽にお問い合わせください。

+0

うーん...私はそれを逆にする必要がある。ユーザーが日付を入力したとき(datepickerを介して)、時計が開始されるべきときのみ。これは、自動的に入力/日付ピッカーのすべての変更が、ユーザー入力から正しい値で新しい時計を開始することを自動的に意味します。 – WebDevBooster

+0

したがって、ハードコードされた日付は無視する必要があります。それは別のプロジェクトのものです。混乱させて申し訳ありません。 – WebDevBooster

+0

ちょうど最後の行をスキップして、ページの読み込みを開始しないで、イベントハンドラでのみ – Pevara

-1

:ここ

は、私が(コメントでの質問を参照)を把握しようとしているものの簡易版でありますグローバルに定義されている変数 var timestampを直接使用してください。 別のファイルから呼び出している場合は、<script >タグを使用して他のファイルの変数を呼び出すことができます。

+0

あなたは非同期フローを考慮していません。また、解決策としてグローバルを提案すると、実際には... – Pevara

+0

私は確かにここに投稿する前に(他のものの中で)試していました。それはうまくいかなかった。 – WebDevBooster

+0

@Pevaraええ、私はまた、それをグローバル化することは良い考えではないとも考えました。 (私はとにかくそれを試していたが、それを働かせることはできなかった) – WebDevBooster

関連する問題