我使用下面的代码在桌面上进行分页(请不要建议任何预先构建的代码)
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 + Button)
我希望函数本身能够跟踪我们应该从哪里开始, 目前我正在使用
tcount = 20;
//do stuff
tcount = tcount +20;
这不太理想。
最简单的方法是什么?
注意:该函数应该假设传递给它的count
已经被加载到表中,例如,如果你调用$('#tableUsers').tablejax('get_members.php', 27, 20);
那么前20行已经加载到该表通过服务器端处理。
<小时/> 的更新
我需要能够致电$('#tableID).tablejax(--initial params here--);
准备好文件,
这基本上可以通过填写一些默认参数(例如标识符,网址,等)来准备功能
这也会将onclick事件处理程序添加到$('#tableIDButton')
,点击后会调用类$('#tableIDButton').tablejax('next');
使用这种方法,因为有时我需要使用另一个触发器调用分页。
我需要知道的是
答案 0 :(得分:3)
我想这会有所帮助: http://www.google.bg/search?q=jquery+plugin+tutorial
基本上你会写这样的东西:(function($){
$.fn.tablejax = function(options) {
this = $(this); // this is the element on which we called the func
this.tcount+=20;
// do something here...
}
})(jQuery);
将此保存到jquery.tablejax.js然后在jquery.js之后在html中调用它
你需要实现这个功能,然后你可以在每个元素或选择器上调用它。
答案 1 :(得分:2)
使用extend()函数向jQuery对象添加函数:
jQuery.fn.extend({
tablejax: function(url, start, count) {
$('#tableIDButton').click(function() {
$('#tableID').tablejax(url, start+20, count); // just pass on the variables
}
} // put comma here if you want to add more functions
});
// to run the function on document ready:
$(function() {
$('#tableID').tablejax(...);
}
然后你应该可以像你想要的那样打电话给你的功能。你显然仍然需要在点击事件中调用它。
<强>更新强>
更新了我的示例以回答问题2和3.要获取下一行,您可以递归地再次调用相同的函数,如示例中所示。
顺便说一下,我看不出我的例子是如何“污染jQuery名称空间”,因为它是从jQuery自己的文档中获取的。