2012-04-11 8 views
0

jquery mobileを使用してイベントを発生させようとしましたが(クリックボタンでログイン)、一度しか動作しません。バグ? Jquery Mobileイベントはlive()とpageshowイベントを使用して1回のみ発生します

私は 'pageshow'イベントで発砲しています(jquery ajax pageloadの全体のため、ドキュメントの準備はできません)が、最初のロードでのみ動作します。 $( 'check-login')の.live()イベントでなければなりません。私はあなたがそれについていくらか光を当てることができることを願っています。

のjQueryコード:

 $('#home').live('pageshow', function(event){ 
          alert('home');//fires okay 

          //fires once only 
          $('.check-login').live('click', function() { 
             var email = $("#email").val(); 
             var password = $("#password").val(); 
             if(email !="" || password !=""){ 
             var datastring = "useremail=" + email + "&userpassword=" + password;     
                   $.ajax({ 
                   type: "POST", 
                   url: 'http://creativetree.co/creativetreeBeta/mobileImageUpload.php', 
                   data: datastring, 
                   success: function(data){ 
                   //success 
                   $('.check-login').slideUp(); 
                   $('.upload-page').fadeIn(); 
                   $('#userlogin').slideUp(); 
                   } 
                   }); 

             }else{ 
             alert('Please fill in all fields'); 
             } 
          }); 
          }); 
+0

「一度だけ発生する」とは、クリックイベントが最初にクリックされたときにのみ機能することを意味しますか?あなたのHTMLは見えますか? JSFiddleを提供できれば、JSFiddleが役に立ちます。 –

+0

人々ができる限り最善を尽くすのを助けるためにどのバージョンを使用していますか? – codaniel

+0

は後で再び歓声をあげる – ChrisSherwood

答えて

0

を経る:あなたは、同じプロジェクト(内部)のためのあなたのjQueryのモバイルサイトにリンクをたどるとき、ページがAJAXでロードされているので、JqueryMobile - Scripting pages

そののみ置き換えます体。したがって、ページロード後に追加されるdom要素のイベントを発生させたい場合は、clickの代わりに.live()関数を使用する必要があります。ページをトラバースするときに、jQuery-Mobile自体から内部的なajax呼び出しを呼び出すだけです。

関連する問題