2012-03-09 11 views
0

私はjQuery Mobileを使用しています。そして真実を伝えるために、私の頭は今回転しています。私のイベントは次のページで起動しません

私はこのコードを持っている:

  //this event happens in my index.php/page1 
      //this works 
      $(document).delegate('.front-page-down','swipedown', function (event) { 
       $.mobile.changePage('#notification', { transition: "slidedown"}); 
      }); 

      $(document).delegate('.swipeup','swipeup', function (event) { 
       $.mobile.changePage('#front-page', { transition: "slideup"}); 
      }); 
      //this event happens in my next page/page2 
      //doesn't work, I have to manually refresh the page first 
      $(document).delegate('.sns-down','swipedown', function (event) { 
       $.mobile.changePage('#featured', { transition: "slidedown"}); 
      }); 

      $(document).delegate('.featured-up','swipeup', function (event) { 
       $.mobile.changePage('#sns-page', { transition: "slideup"}); 
      }); 

最初の2(クラスフロントページダウン& swipeup)それは私のindex.phpや私のページの最初のロードが、第三のコード(クラスに発射しているため動作しますsns-down &フィーチャーアップ)はそうではありません。最初にページを手動でリフレッシュして機能させる必要があります。今はなぜそれに反応しているのですか?

誰かを助けてください。

+0

デリゲートに渡された関数は、まったく呼び出されていますか?これを証明するために 'console.log'sや何かを追加しましたか?ブラウザのコンソールから、 '$("。sns-down ")'が第1、第2、第3などのページの読み込み後に何を返しますか? –

+0

私のモバイルブラウザではconsole.logをテストできません。私はalert()しか使用できません。最初の2人がalert()をトリガーします。しかし、私が次のページに行き、3人目と4人目のデリゲートを起動させると、それは起動しません。 T_T –

+0

デスクトップChromeでテストできますか?そうでない場合は、アプリがテスト目的でモバイルとデスクトップの両方で動作することを確認することをお勧めします。 –

答えて

1

各ページには、互いに完全に独立しているため。 index.phpに登録されたイベントは他のページに影響しません。したがって、2ページ目に再度登録する必要があります。

+0

は私の2番目のページで3番目と4番目のイベントを追加しました。まだそれは誘発しません。 –

+0

エラーコンソールには何もありませんか?ページに 'sns-down'クラスのノードがありますか? –

+0

こんにちは、このエラーをトレースしてください:$ .mobile.changePage( '#featured'、{transition: "slidedown"});.この機能は私の次のページでは機能しません。警告機能を追加してこの部分をコメントしようとしました。 - –