我使用下面的代碼做一個表分頁(請不要提出任何預建的)把它變成一個jquery函數?
function tablejax(url, start, count) {
$('#tablejaxButton').attr("disabled", "true");
$('#tablejaxOverlay').fadeIn('slow');
$.ajax({
type: "GET",
url: url,
data: "start="+start+"&count="+count+"&identifier="+$('#tablejaxButton').val(),
success: function(data){
setTimeout(function(){
$('#myTable tbody').append(data);
$('#myTable tr td div').slideDown('slow');
$("html:not(:animated),body:not(:animated)").animate({
scrollTop: $('body').attr("scrollHeight")
}, 1000);
$("table").trigger("update");
}, 1000);
setTimeout(function(){
$('#tablejaxOverlay').fadeOut('slow');
$('#tablejaxButton').removeAttr('disabled');
}, 1000);
}
});
}
但是我目前叫它通過
$('#tablejaxButton').click(function() {
tablejax(this.name, tcount, 20);
tcount = tcount+20;
})
有幾個問題這, 但我想改變的是。
我希望能夠調用$('#tableID').tablejax('url', 'identifier', 'count');
如$('#tableUsers').tablejax('get_members.php', 27, 20);
它會自動onclick事件附加到#tableUsersButton
(TABLEID +按鈕)
我想本身的功能來保持跟蹤我們應該從 目前我正在使用
tcount = 20;
//do stuff
tcount = tcount +20;
這是不理想的。
最簡單的方法是什麼?
注:此功能應該是傳遞到它的count
已經被加載到表中,例如,假設如果你調用$('#tableUsers').tablejax('get_members.php', 27, 20);
那麼第20行就已經可以通過服務器端處理加載到表中。
更新
爲了簡化我的問題。
我需要能夠調用的文件準備$('#tableID).tablejax(--initial params here--);
,
這基本上會得到一個函數準備填寫一些默認PARAMS(如標識,網址,ECT) 這也將增加對onclick事件處理器$('#tableIDButton')
,當點擊時會打電話像
這種方法是有時我需要使用另一個觸發器調用分頁。
所有我需要知道的是
- 如何註冊jQuery中的函數:回答
- 如何註冊當函數被調用回答的單擊事件:原來我可以註冊一個點擊甚至從任何地方不只是文件準備
- 如何在函數中調用一個'行動',當它不是初始調用 (初始呼叫應當使用的參數,後續調用應該調用「內部功能)
嗨那裏, 這就近了。 但是我想在文檔準備好時調用'$('#tableID')。tablejax(blablabla);' 。當我調用它時,它應該在'$('#tableIDButton')'上註冊一個名爲$('#tableID')。的table事件('next')。 這將抓住接下來的幾行 – Hailwood 2010-08-22 23:40:02
我可能是錯的,但我總是被告知用自己的函數擴展jquery對象污染它,就好像你有內部函數(例如更新,刪除,change_colour),他們可能會與其他人發生衝突,但是使用0xAF的方法你的內部函數就是這樣,內部的。 另外,我真的不想每次都必須傳遞參數,因此爲什麼我想只能調用tablejax('next'); 我想我總是可以只用tablejax();如果沒有參數,則使用在選項數組中傳入的內容... – Hailwood 2010-08-23 00:25:33
這裏有兩個問題。 1)不能有兩個具有相同名稱的函數,但具有不同的參數/實現。 2)'tablejax('next');'函數沒有意義,因爲它是在HTML元素上調用的,因此不會了解以前的任何查詢。所以沒有信息來計算接下來會發生什麼。除非當然存儲在按鈕中,但是當您只需要下一行時,您需要給函數一個不同的名稱。 – Stian 2010-08-23 00:37:52