2012-04-11 47 views
0

嘗試使用jquery mobile來觸發事件(單擊登錄按鈕),但它只能使用一次。錯誤? Jquery Mobile Event只使用live()和pageshow事件觸發一次

我在'pageshow'事件觸發(因爲整個jquery ajax頁面載入的東西,文檔準備好不適用),但它只能在第一次加載時工作,我嘗試了一個警報,火災沒事。所以它必須是$('。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會有所幫助。 – 2012-04-11 17:11:36

+0

你用什麼版本來幫助人們回答最好的答案? – codaniel 2012-04-11 18:19:47

+0

稍後會再次發佈歡呼聲 – ChrisSherwood 2012-04-11 20:20:48

回答

0

去走遍:JqueryMobile - Scripting pages

它,因爲當你跟隨你的jQuery Mobile的網站爲同一個項目(內部)鏈接時,頁面加載與AJAX和只替換身體。因此,如果您想在頁面加載後添加的任何dom元素上觸發任何事件,則需要用戶.live()函數而不是單擊。當你遍歷不重載頁面時,它只是jQuery-Mobile本身的內部ajax調用。