2

我正在尝试创建一个带有导航的索引,单击该索引时将通过 ajax 加载页面,而不是转到另一个 html

这是我的javascipt:

<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript">
    function getPage(){
            $.ajax({
                type: 'post',
                url: 'places.html',
                success: function(html)
                {
                    $("#response").fadeIn("slow");
                    $("#response").html(html);          

                }
            });     

            return false;       
        }
    </script>

我有一个叫做这个的href

<a href="" onclick="getPage();">get page</a>

这适用于 xampp 本地主机,但似乎在 phonegap 中产生错误

Uncaught ReferenceError: $ is not defined at file:///android_asset/www/index.html:129 

这是 $.ajax 所在的行

4

2 回答 2

1

您必须等到设备准备好进行 ajax 调用。

document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
function getPage(){
        $.ajax({
            type: 'post',
            url: 'places.html',
            success: function(html)
            {
                $("#response").fadeIn("slow");
                $("#response").html(html);          

            }
        });     

        return false;       
    }
}
于 2013-02-13T13:19:53.997 回答
1

ajax 工作得很好,最后需要完整的文件地址并将其放入 documentready

$.ajax({
        type: 'post',
        url: 'file:///android_asset/www/.html/places.html',
        success: function(html)
        {
            $("#response").fadeIn("slow");
            $("#response").html(html);          

        }
    });     

我发现的另一种方法是

$("#getProfile").click(function() {
            var ajax = new XMLHttpRequest();
            ajax.open("GET","file:///android_asset/www/places.html",true);
            ajax.send();

            ajax.onreadystatechange=function(){
                if(ajax.readyState==4 && (ajax.status==200||ajax.status==0)){               
                    var theHTML = ajax.responseText;
                    document.getElementById('response').innerHTML = theHTML;
                }
            }

        });

感谢马雷克的帮助

于 2013-02-14T03:34:00.740 回答