2010-09-21 119 views
0

感謝您爲我們提供的所有幫助! :djquery ajax問題

,現在,我使用jQuery和Ajax

我正在獲取我的所有用戶的照片從我的數據庫,稱它們導出到一個網格,然後將一個jQuery分頁插件遇到一些問題上我「pajinate」使用此代碼

$(function(){ 
    $('#talent_paging').pajinate({ 
     num_page_links_to_display : 4, 
     items_per_page : 15, 
     nav_label_first : '«', 
     nav_label_prev : '<', 
     nav_label_next : '>', 
     nav_label_last : '&raquo;' 
    }); 
}); 

來源:jquery.pajinate

的網頁是關於使用某些參數,比如搜索:範圍的年齡,性別和關鍵字 ,我使用給ajaxForm來參考程序SS表單提交,使用此代碼

$(function() { 
    var options = { 
     target:'#talent_paging', 
    }; 
    $('#search_talent').ajaxForm(options); 
}); 

來源:ajaxForm

就像你已經猜到了,分頁是第一頁面加載運行良好,但是當我運行搜索,它失敗我。實際上,當我使用jQuery數據表並且試圖操縱每一行時,它實際上遇到了類似的問題,它在第一頁上運行良好,但在下一頁上失敗。

我解決了我的數據表的問題使用.delegate(),我認爲這一個有同樣的問題,我已經嘗試了幾種方法在我的分頁搜索問題上添加委託方法,但它只是試驗而不知道什麼我我實際上做(複製此膏:p),因爲我真的不知道如何.delegate()的作品

的話,請幫我在這些問題上

是委託給解決的最好辦法我目前的問題?

如果是,請幫助我瞭解如何.delegate()是否使用IE之前,IE8工作

感謝

回答

0

$().delegate()只適用於事件,點擊,鼠標懸停,焦點等。Javascript中有一個概念叫做「bubbling」。這意味着,除非您明確指出,否則每個事件都會在DOM樹上「冒泡」,並會在樹中的每個元素上觸發。這意味着您可以使用共同的祖先元素來「陷」到子元素上的特定類型的所有事件。

根據我的理解,這不適用於pajinate插件,因爲它不使用事件。我相信它會在通話時修改文件。

你需要使用一個回調函數來調用$('#talent_paging').pajinate()每個給ajaxForm完成其工作時間:

$(function() { 
    var options = { 
     target:'#talent_paging', 
     success: function() { 
      $('#talent_paging').pajinate({ 
       num_page_links_to_display : 4, 
       items_per_page : 15, 
       nav_label_first : '&laquo;', 
       nav_label_prev : '<', 
       nav_label_next : '>', 
       nav_label_last : '&raquo;' 
      }); 
     } 
    } 

    $('#search_talent').ajaxForm(options); 
}); 

注意,該代碼是不是很好的優化方面,卻很難做到這一點,沒有看到您的基本HTML。

+0

嘿感謝您的建議,我會更新我的帖子 – littlechad 2010-09-21 08:34:51

0

?如果是這樣,這可能是  —你有什麼曾經是一個語法錯誤(或至少不確定性)的問題,但據我所知只有IE會關心它:

$(function() { 
    var options = { 
     target:'#talent_paging', // <=== This comma is the error 
    }; 
    $('#search_talent').ajaxForm(options); 
}); 

的對象文本語法沒有直到最近明確允許尾隨逗號。 SpiderMonkey(Firefox),V8(Chrome)以及Safari和Opera使用的任何其他功能都不在意,但在JScript 6(IE8)之前,JScript(IE)會在逗號上拋出解析異常並且腳本消失。相似但不同的事情發生,如果你使用數組文本做到這一點:

var a = [1, 2, 3, 4, 5, ]; 

IE(JScript中)創建了數組(是的,六)項,其中最後一個是undefined。這不是不合理的,因爲我們總是被允許有空白條目(例如var a = [1, , 3];),那些條目默認爲undefined,但其他人都換個方式創建了一個包含5個條目的數組。

最近的5th edition specification清除了這個(耶!)。尾部逗號在對象文字(第11.1.5節)和數組文字(第11.1節)中明確允許。4),並在數組文字的情況下,它不會添加到數組的長度(a.length以上是5)。

最新的發佈 IE版本使用JScript 6,它現在允許在對象文字上尾隨逗號,但仍然存在數組末尾的額外條目問題。希望現在ECMAScript 5明白這一點,下一個版本的微軟JScript將改變這種狀況,儘管它必須是一個更難賣的產品......

+0

我的默認瀏覽器目前是Firefox,但當然用戶會以某種方式使用IE,而我第二你的耶! :D我會更新更改謝謝。但問題仍然存在,我仍然無法打電話給我的分頁後搜索點燃 - 重要 - ....請幫助 – littlechad 2010-09-21 08:00:38

+0

@littlechad::-)啊,呃,有點希望是這樣。對於pajinate的幫助,我把你留在別人能幹的手中(我從來沒有用過)。祝你好運! – 2010-09-21 08:08:52