2012-07-27 110 views
1

好吧,我已經做了一點研究,而且我有點卡在這個ajax的東西。如何在初始頁面加載後加載HTML元素作爲觸發器?

我有兩個A HREF中我有被歸入「測試」發送Ajax調用,然後「第」相當於實際分頁下一個按鈕。當我點擊頁面按鈕時,它應該將隱藏的輸入字段值更改爲第2頁,這將作爲第2頁,而是通過ajax。現在我只是把它硬編碼改成page-2和console.log輸入隱藏字段。

目前AJAX調用犯規發送任何數據後,它只是用於測試,現在,它是所有回聲出A HREF這是一個分頁按鈕。

我試圖做一個AJAX分頁。

當我點擊測試時,它基本上將當前的Asdasd鏈接(就像一個pagiantion按鈕)替換爲分頁爲文本而不是asdasd的相同鏈接。這個鏈接應該改變隱藏的輸入值,但是目前由於分頁鏈接是由AJAX生成的並且在頁面加載之後加載的,所以最初的jQuery不起作用,它什麼都不做。如果我用ajax調用回顯相同的jquery,它可以工作,但問題是,我不想每次調用ajax時重新加載jquery腳本。

我以爲我可以使用。就緒這樣的:

$('.page').ready(function(){ 
    $('.asdasd, .page').on("click", function(e){ 

    e.preventDefault(); 

    if($(this).hasClass('page')){ 
      console.log(true); 
    } 

    $('.new-page').val('page-2'); 

    console.log($('.new-page').val()); 
}); 

而且我認爲他會一直嘗試,看看網頁是準備或東西,但,這並不甚至是有意義的。

我所知道的唯一有效的工作就是我必須發送jquery腳本並在每個jquery調用中再次出現,以便重新加載HTML DOM元素並且jQuery能夠識別它。

我的問題是,有沒有什麼辦法來加載jQuery腳本只是一個時間,並使其所以它總是拿起即使它在頁面加載後已加載的分頁按鈕?

回答

1

使用jQuerys' delegate方法:

說明:將一個處理程序,以一個或多個事件的選擇,現在還是將來相匹配的所有元素的基礎上,一組特定的根元素。

$(document.body).delegate('.asdasd, .page', 'click', function(e) { 
    e.preventDefault(); 

    if ($(this).hasClass('page')) { 
     console.log(true); 
    } 

    $('.new-page').val('page-2'); 

    console.log($('.new-page').val()); 
});​ 
+0

你的先生,是個天才 – 2012-07-27 00:31:58

+0

@DavidLawrence沒有那麼多,更多的吸毒者... – xandercoded 2012-07-27 00:55:37

+0

僅供參考,如果使用jQuery 1.7或以上,'delegate'已被取代由'on'方法......唯一會改變的是我相信的前兩個參數的順序。見http://api.jquery.com/delegate/ – Funka 2012-07-27 01:26:39

相關問題