jQuery Ajax頁(yè)面局部加載方法匯總

字號(hào):


    在jquery中實(shí)現(xiàn)ajax加載的方法有很多種,不像以前的js的ajax只有那一種,下面我們介紹jquery ajax實(shí)現(xiàn)局部加載方法總結(jié),有需要了解的朋友可參考。
    例
    $.ajax({
    url: "hotelQuery!queryHotelByCity.action",
    type: "post",
    dataType: "html",
    data: "queryHotel.city="+cityobj.value+"&queryHotel.wbcid="+wbcid,
    success: function(data){
    $("#hotellists").html($(data).filter("#list").html());
    }
    });
    代碼解析:
    從上面的代碼我們可以看出,返回的數(shù)據(jù)是data,但是我們?nèi)绻谝猘jax請(qǐng)求的頁(yè)面的那部分用id為list的一個(gè)DIV包圍起來(lái),這樣我們通過(guò)$(data).filter("#list").html()就可以拿到DIV中的HTML內(nèi)容
    實(shí)例
    $(document).ready(function(){
    function loadMessage()
    {
    $(this).html("loading...");
    var o = this;
    var xmlhttp = $.ajax({
    url:"Service/IndexLogin.aspx",
    dataType:"html",
    success:function(result)
    {
    $(o).html(result);
    }
    });
    }
    loadMessage.call($("#addinfo"));
    });
    <form action="#" method="post">
    <ul id="addinfo">
    加載中...
    </ul>
    </form>
    上面我們使用的是的方法,其實(shí)還有更簡(jiǎn)單的辦法哦,load() 方法通過(guò) AJAX 請(qǐng)求從服務(wù)器加載數(shù)據(jù),并把返回的數(shù)據(jù)放置到指定的元素中
    $(document).ready(function(){
    $("#addinfo").load("Service/IndexLogin.aspx", $("#addinfo li"));
    })
    1.加載一個(gè)php文件,該php文件不含傳遞參數(shù)$("#myID").load("test.php");
    //在id為#myID的元素里導(dǎo)入test.php運(yùn)行后的結(jié)果
    2. 加載一個(gè)php文件,該php文件含有一個(gè)傳遞參數(shù)
    代碼如下:
    $("#myID").load("test.php",{"name" : "Adam"});
    //導(dǎo)入的php文件含有一個(gè)傳遞參數(shù),類(lèi)似于:test.php?name=Adam
    3. 加載一個(gè)php文件,該php文件含有多個(gè)傳遞參數(shù)。注:參數(shù)間用逗號(hào)分隔
    代碼如下:
    $("#myID").load("test.php",{"name" : "Adam" ,"site":"61dh.com"});
    //導(dǎo)入的php文件含有一個(gè)傳遞參數(shù),類(lèi)似于:test.php?name=Adam&site=61dh.com
    4. 加載一個(gè)php文件,該php文件以數(shù)組作為傳遞參數(shù)
    代碼如下:
    $("#myID").load("test.php",{'myinfo[]', ["Adam", "61dh.com"]});
    //導(dǎo)入的php文件含有一個(gè)數(shù)組傳遞參數(shù)。
    下面給大家介紹Jquery Ajax 頁(yè)面局部更新
    Ajax 是一個(gè)異步過(guò)程,頁(yè)面中的一部分代碼發(fā)出一個(gè)網(wǎng)絡(luò)請(qǐng)求,在里面設(shè)置一個(gè)回調(diào)函數(shù),如果網(wǎng)絡(luò)請(qǐng)求得到返回,那么執(zhí)行回調(diào)函數(shù)。在回調(diào)函數(shù)中的上下文和時(shí)間觸發(fā)的上下文會(huì)有所不同,在jquery中的應(yīng)用需求大多數(shù)時(shí)候是這樣的。比如我點(diǎn)擊了一個(gè)按鈕,這個(gè)按鈕是一個(gè) tr 中的 td 中的內(nèi)容,我可以通過(guò)這個(gè)點(diǎn)擊時(shí)間確定當(dāng)前行的任何屬性,或者確定當(dāng)前也面中的任何一個(gè)屬性,只要這個(gè)頁(yè)面的布局是又某種可控的過(guò)濾的話(huà)。需要實(shí)用到this關(guān)鍵字。還有就是 find() 方法。比如this.parent().find('tr:eq(3)'); 這是找到所有的tr中的第3個(gè)元素。
    下面是兩個(gè)示例js函數(shù),第一個(gè)是的重點(diǎn)是對(duì)必須內(nèi)容的獲取,通過(guò)jquery可以很方便的拿到我們需要的元素的內(nèi)容。然后用這個(gè)內(nèi)容實(shí)現(xiàn)其他的功能,同事還用jquery的方式對(duì)頁(yè)面進(jìn)行操作,jquery在頁(yè)面展示中的強(qiáng)大作用,可見(jiàn)一斑。第二個(gè)函數(shù)主要是通過(guò)jquery 的ajax方式 調(diào)用指定接口,完成數(shù)據(jù)操作,然后將數(shù)據(jù)更新在頁(yè)面上。ajax的目的是局部更新頁(yè)面,有時(shí)候刷新頁(yè)面是很不方便的。
    function openRej()
    {
    // 通過(guò)jquery找到當(dāng)前鏈接同行的其他內(nèi)容,這里拿到了ID。
    id = $(this).parent().parent('tr').find('td:eq(0)').html();
    $("#TB_overlayBG").css({
    display:"block",height:$(document).height()
    });
    $(".box").css({
    left:($("body").width()-$(".box").width())/2-20+"px",
    top:($(window).height()-$(".box").height())/2+$(window).scrollTop()+"px",
    display:"block"
    });
    current_id = id;
    }
    // 點(diǎn)擊某個(gè)時(shí)間出發(fā)這個(gè)函數(shù) 來(lái)對(duì)頁(yè)面進(jìn)行局部更
    function doReject(){
    var obj = $(".box input:checked");
    var rej_reason = '';
    var other = $("#otherbox #other_reject_reason").val();
    rej_reason +="`"+other;
    if(rej_reason == "`"){
    window.alert('親,至少要填寫(xiě)一個(gè)原因哦!');
    return ;
    }
    url = "youurl?id="+current_id+"&reject_reason="+rej_reason;
    $.getJSON(url,function(data){
    // data 是從請(qǐng)求獲得的數(shù)據(jù)。
    if(data.msg == true){
    // update data in current line.
    color = get_color(data.status);
    $("#rej_reason"+current_id).text(data.rea);
    status_text = gen_status_text(data.status);
    // 更新頁(yè)面中對(duì)應(yīng)的內(nèi)容。
    $("#status"+current_id).text(status_text);
    $("#status"+current_id).css('color',color);
    // 執(zhí)行其他的操作
    closeCeng();
    }else {
    alert('更新失敗');
    }
    });
    }