0

JquerMobile フレームワークを使用してサーバー側から JSON オブジェクトとしていくつかの値を取得するために ajax 呼び出しを使用しようとしています。これは、デスクトップ Chrome ブラウザでは問題なく機能します。これは、携帯電話のブラウザーでは機能しません。ここで私が間違っていることを指摘する助けがあれば役立ちます。以下のスクリプト。

$("#showmore").live("click", function(event, param1){
    event.preventDefault();
    getUrl = $(this).attr('href');
    $.post(getUrl, function(data){  
        $('#sname').html(data.name);
    },"json");   
    return false;  
});

コールバック データをアラート ボックスに出力すると、現在のページの HTML コンテンツが取得されます。デスクトップ ブラウザでは、適切な値を取得しています。ご協力ありがとうございました!

4

1 に答える 1

0

これと同じ問題がありました。私は iPad でのみこの問題を経験しており、修正を見つけることができませんでした。しかし、回避策を見つけることができました。

href属性に依存する代わりに、 data-attribute、 likeを使用しますdata-hrefdata-href属性を属性と同じに設定し、jQuery コードでhref属性を参照します。data-href

hrefMobile Safari の一部のバージョンで、正しい属性の値を取得できないというバグがあるようです。AJAX リクエストで同じページをロードする理由は、hrefJS を介して返される値が空白であり、その親ドキュメントを参照しているためです。

JS --

$("#showmore").live("click", function(event, param1){
    var getUrl = $(this).attr('data-href');//no need to create a global variable, so use the `var` keyword here
    $.post(getUrl, function(data){  
        $('#sname').html(data.name);
    },"json");   
    return false;  
});

HTML --

<a data-href="foobar.html" href="foobar.html" id="showmore">SHOW MORE!</a>

return falsejQuery のイベント ハンドラーでは、機能的に呼び出しevent.preventDefault()と同じであることに注意してくださいevent.stopPropagation()

于 2012-04-17T21:06:20.347 に答える