我使用下面的代码做一个表分页(请不要提出任何预建的)把它变成一个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