缺陷Jquery Mobile事件仅使用live()和pageshow事件触发一次

缺陷Jquery Mobile事件仅使用live()和pageshow事件触发一次,jquery,jquery-mobile,cordova,Jquery,Jquery Mobile,Cordova,尝试使用jquery mobile触发事件(登录单击按钮),但它只工作一次 我让它在“pageshow”事件中启动(因为整个jQueryAJAXPageLoad事件,DocumentReady不适用),但它只在第一次加载时起作用,我尝试了一个触发OK的警报。因此它必须是$('.check login')中的.live()事件。我希望你们能解释一下 Jquery代码: $('#home').live('pageshow', function(event){

尝试使用jquery mobile触发事件(登录单击按钮),但它只工作一次

我让它在“pageshow”事件中启动(因为整个jQueryAJAXPageLoad事件,DocumentReady不适用),但它只在第一次加载时起作用,我尝试了一个触发OK的警报。因此它必须是$('.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');
                                        }
                             });
                             });
通过:


这是因为当您在jQuery移动站点上为同一个项目(内部)跟踪链接时,页面将加载AJAX,并且只替换正文。因此,如果要在页面加载后添加的任何dom元素上触发任何事件,则需要使用user.live()函数,而不是单击。当您遍历页面而不是重新加载页面时,它只是来自jQuery Mobile本身的一个内部ajax调用。

所说的“仅触发一次”,您的意思是单击事件仅在第一次单击时起作用?我们能看看你的HTML吗?如果你能提供一个,JSFIDLE会有所帮助。你用什么版本来帮助人们回答最好的问题?稍后会再次发布