0

.click イベントを使用すると、メソッドを呼び出すことができます。
働く

$("#signin").live('click',function(){
    jsTouch.loadPage('pages/tabs.html', { transition: 'pop-in' });
});

jQuery.post を使用すると、メソッドのロードに失敗します。
失敗した

$("#signin").live('click',function(){       
$.post("http://localhost/myAPI/index.php/api/requestlogin", { username: "admin", password: "test" },
function(data) {
        if(data.response == 'success')
            {                   
            jsTouch.loadPage('pages/tabs.html', { transition: 'pop-in' });
                     }else{
                        alert(data.response);               
                          }
});
});

コンソール エラー TypeError: 未定義のメソッド 'loadPage' を呼び出せません

これがjstouchライブラリです。 https://github.com/vitmalina/Web-2.0-Touch/blob/master/includes/jsTouch.js

4

1 に答える 1

1

まず.live()減価償却です。.on()代わりに使用してください: http://api.jquery.com/on/

わかりましたので、私が使用する AJAX 関数を使用してコードを書き直しました。$.POST は、はい、$.ajax の省略形ですが、とにかく試してみてください :)


$("body").on('click', '#signin', function(){       
    $.ajax({
        url: "http://localhost/myAPI/index.php/api/requestlogin",
        type: 'POST',
        data: {username: "admin", password: "test"},
        success: function(response) 
        {           
            jsTouch.loadPage('pages/tabs.html', { transition: 'pop-in' });
        },
        error: function(response)
        {
            alert('error');
        }
    });
});

確実に機能するはずのコードを使用していることがわかったら、それでも何も起こらない場合は、次のことをこの順序で確認する必要があります。

  • クリックが実際に登録されているため、クリックの直後にアラートを配置します。
  • POST が実際に実行されていることを確認するため、success 関数にアラートを設定します。
  • それでも何も起こらない場合、それはあなたjsTouch.loadPage()が働いていないということです。
于 2013-01-18T10:14:50.510 に答える