和诡异的问题,求大神解答啊

徐徐徐徐徐 2013-01-22 11:31:47

<head>
<script type="text/javascript">
$(function() {
bindResize(document.getElementById('menu'));
//树形菜单
$("#browser").treeview();
//分页开始
var ymym;
//页面索引 b=0
var ymsy = 0;
//显示行数a=10
var xshs = 10;
//总行数 c=100
var zhs;
//分页参照
var scc = 1;
var sclen = 10;
var cs = 1;
//节点单击事件
$('#Button1').click(function() {
alert('dblclick');
$(this).addClass("select").parent().siblings().children().removeClass("select");
$('#sp1>span').remove();
ymsy = 0;
xshs = 10;
scc = 1;
sclen = 10;
cs = 1;
$('table>tbody>tr>td').remove();
$.post('dataServers.ashx', { ccid: "h_xuxu" }, function(data) {
var html = '';
for (i = xshs * ymsy; i < xshs * (ymsy + 1); i++) {
html += '<tr><td>' + data[i].id + '</td><td>' + data[i].category + '</td><td>' + data[i].name + '</td></tr>';
}
$('.gridtable1').append(html);
//初始化分页HTML,读取总页数
$.post('dataServers.ashx', { ccoid: 'h_xuxu' }, function(data) {
zhs = data;
fy(zhs, xshs, ymsy, cs);
//显示页码xsym
xsym(ymsy);
}, 'json');
//点击一次下一页
$('#next').click(function() {
alert('下一页' + ymsy);
//点击下一页
ymsy = ymsy + 1;
// alert('ymsy=' + ymsy);
var pf = parseFloat(zhs / xshs);
alert('pf=' + pf);
//当返回数据为10的整数行
if (ymsy == pf) {
ymsy = parseInt(zhs / xshs) - 1;
alert("=" + ymsy);
alert('已经是最后一页!');
}
//当返回数据为非10的整数行
else if (ymsy > parseFloat(zhs / xshs)) {
ymsy = parseInt(zhs / xshs);
alert(">" + ymsy);
alert('已经是最后一页!');
}
//当返回数据为最后一行
else if (ymsy == parseInt(zhs / xshs)) {
alert("last" + ymsy);
$('#last').trigger('click');
}
else {
//数据读到第11页时切换span
aaa(10, ymsy);
if (ymsy == 10 * cs) {
alert('==' + ymsy);
nfy(zhs, xshs, ymsy, cs);
cs += 1;
}
}
//显示页码xsym
xsym(ymsy);
});
//点击上一页
$('#prev').click(function() {
alert('上一页' + ymsy);
//点击上一页
ymsy = ymsy - 1;
if (ymsy < 0) {
ymsy = 0;
alert('已经是第一页!');
}
else {
// alert('sYS' + ymsy);
//当页面索引>10,单击上一页回到初始span
var htmSpan = "";
// alert('Scs' + cs);
if (ymsy == 10 * (cs - 1) - 1) {
$('#sp1>span').remove();
fanYe((cs - 2) * 10 + 1, ymsy + 1, htmSpan);
cs--;
}
aaa(10, ymsy);
}
//显示页码
xsym(ymsy);
});
//首页
$('#first').click(function() {
ymsy = 0;
var htmSpan = "";
//如果<9
if (zhs / xshs < 9) {
$('#sp1>span').remove();
fanYe(ymsy + 1, parseInt(zhs / xshs) + 1, htmSpan);
cs = 1;
}
//如果>=9
else {
$('#sp1>span').remove();
fanYe(ymsy + 1, ymsy + 10, htmSpan);
cs = 1;
}
aaa(10, ymsy);
//显示页码
xsym(ymsy);
});
//尾页
$('#last').click(function() {
ymsy = zhs / xshs;
//span翻页
var htmSpan = "";
cs = parseInt(ymsy / 10) + 1;
if (zhs % xshs == 0) {
$('#sp1>span').remove();
fanYe((cs - 2) * 10 + 1, zhs / xshs, htmSpan)
//重置cs的值
ymsy = parseInt(ymsy) - 1;
lastaaa(10, ymsy, zhs);
} else {
$('#sp1>span').remove();
fanYe(parseInt(zhs / (10 * xshs)) * 10 + 1, parseInt(zhs / xshs) + 1, htmSpan);
ymsy = parseInt(ymsy);
lastaaa(10, ymsy, zhs);
}
// alert('YMSY' + ymsy);
//显示页码
xsym(ymsy);
// alert(cs);
});
//表格隔行变色
$('tbody>tr:odd').addClass('odd');
$('tbody>tr:even').addClass('even');
}, 'json');
});

})
</script>
</head>
<body>
<div id="header">
<div id="head">
</div>
</div><%--内容--%>
<div id="contents">
<div id="menu">
<div id="menu1">
<ul id="browser" class="filetree treeview-famfamfam">
<li><span class="folder">信息</span>
<ul>
<li><span class="folder">用户</span>
<ul>
<li><span class="file">0</span></li>
<li><span class="file">1</span></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div id="roll"></div>
</div>
<div id="content">
<div id="cxtj"><em>
<input id="Button1" type="button" value="Click" /></div>
<div id="Div1">
<table class="gridtable1" title="">
<tr>
<th>Id</th>
<th>Category</th>
<th>Name</th>
</tr>
<tr><td colspan="3">暂无数据!</td></tr>
</table>
</div>
<div id="fenYe">
<div>< <span id="first">首页</span> <span id="prev">上一页 </span><em id="sp1"></em>
<span id="next">下一页</span> <span id="last">尾页</span> ></div>
</div>
</div>
</div>
</body>
</html>
以下是js,//根据行索引绑定数据
function aaa(xshs, ymsy, zhs) {
$('table>tbody>tr>td').remove();
$.post('dataServers.ashx', { ccid: "h_xuxu" }, function(data) {
var html = '';
for (i = xshs * ymsy; i < xshs * (ymsy + 1); i++) {
html += '<tr><td>' + data[i].id + '</td><td>' + data[i].category + '</td><td>' + data[i].name + '</td></tr>';
}
$('.gridtable1').append(html);
}, 'json');
}
//尾页处理
function lastaaa(xshs, ymsy, zhs) {
$('table>tbody>tr>td').remove();
$.post('dataServers.ashx', { ccid: "h_xuxu" }, function(data) {
var html = '';
for (i = xshs * ymsy; i < zhs; i++) {
html += '<tr><td>' + data[i].id + '</td><td>' + data[i].category + '</td><td>' + data[i].name + '</td></tr>';
}
$('.gridtable1').append(html);
}, 'json');
}
/*翻页方法*/
//翻页核心方法
function fanYe(scc, sclen, htmSpan) {
for (var i = scc; i <= sclen; i++) {
htmSpan += '<span class=i' + i + '>[' + i + ']</span>';
}
$('#sp1').append(htmSpan);
}
//初始化翻页
function fy(zhs, xshs, ymsy, cs) {
//判断页面是否大于10页
var htmSpan = '';
if (zhs / xshs > 10 * cs - 1) {
//加载显示1-10span
fanYe(ymsy + 1, 10 * cs, htmSpan);
} else {
fanYe(ymsy + 1, parseInt(zhs / xshs) + 1, htmSpan);
}
}
//点击下一页翻页
function nfy(zhs, xshs, ymsy, cs) {
var htmSpan = "";
if (ymsy == 10 * cs) {
//如果有后十页
if (parseInt(zhs / xshs) > 10 * (cs + 1) - 1) {
$('#sp1>span').remove();
htmSpan = '';
fanYe(ymsy + 1, ymsy + 10, htmSpan);
// alert('>' + cs);
} else if (zhs % xshs == 0 && zhs / (xshs * 10) > cs) {
$('#sp1>span').remove();
htmSpan = '';
fanYe(ymsy + 1, ymsy + 10, htmSpan);
// alert('='+cs);
} else if (zhs % xshs == 0 && zhs / (xshs * 10) == cs) {
alert('已经是最后一页!');
}
//没有后十页
else {
$('#sp1>span').remove();
htmSpan = '';
fanYe(ymsy + 1, parseInt(zhs / xshs) + 1, htmSpan);
// alert('<'+cs);
}
}
}
//显示页码
function xsym(ymsy) {
//页面页码ymym
ymym = ymsy + 1;
//移出其他页面selected
$('#sp1>span').removeClass('selected');
//初始当前页面页码ymsy+1
$('#sp1>span.i' + ymym + '').addClass("selected");
}
遇到的问题是,第一次点击$('#Button1')的时候,代码逻辑正常,可以正常翻页,当再次点击$('#Button1')时,ymsy的值,不能重置为0,单击下一页,会触发2次下一页的事件。求jQuery高手解答!!!
...全文
178 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
爱若如梦 2013-01-22
  • 打赏
  • 举报
回复
引用 4 楼 h_xuxu 的回复:
引用 3 楼 datiexiong 的回复:引用 2 楼 h_xuxu 的回复:引用 1 楼 datiexiong 的回复:重复绑定事件,应该判断是否已经绑定过事件了,可以用全局变量判断。 具体怎么判断,求详细说明啊 var button1Click = false; $('#Button1').click(function(){ if(!buttonClic……
可以给btn加上属性,使用setAttribute("clicked",true), 当getAttribute("clicked")为false或者未定义时,认为没有绑定过,否则任务绑定过。
徐徐徐徐徐 2013-01-22
  • 打赏
  • 举报
回复
引用 3 楼 datiexiong 的回复:
引用 2 楼 h_xuxu 的回复:引用 1 楼 datiexiong 的回复:重复绑定事件,应该判断是否已经绑定过事件了,可以用全局变量判断。 具体怎么判断,求详细说明啊 var button1Click = false; $('#Button1').click(function(){ if(!buttonClick) { buttonClick=true; ……
这个能解决多次点击$('#Button1')造成的混乱,如果要实现点击$('.btn')怎么改啊?就是点击一类按钮都让他执行。
爱若如梦 2013-01-22
  • 打赏
  • 举报
回复
引用 2 楼 h_xuxu 的回复:
引用 1 楼 datiexiong 的回复:重复绑定事件,应该判断是否已经绑定过事件了,可以用全局变量判断。 具体怎么判断,求详细说明啊
var button1Click = false; $('#Button1').click(function(){ if(!buttonClick) { buttonClick=true; //原来绑定的事件的代码 } });
徐徐徐徐徐 2013-01-22
  • 打赏
  • 举报
回复
引用 1 楼 datiexiong 的回复:
重复绑定事件,应该判断是否已经绑定过事件了,可以用全局变量判断。
具体怎么判断,求详细说明啊
爱若如梦 2013-01-22
  • 打赏
  • 举报
回复
重复绑定事件,应该判断是否已经绑定过事件了,可以用全局变量判断。
徐徐徐徐徐 2013-01-22
  • 打赏
  • 举报
回复
引用 5 楼 datiexiong 的回复:
引用 4 楼 h_xuxu 的回复:引用 3 楼 datiexiong 的回复:引用 2 楼 h_xuxu 的回复:引用 1 楼 datiexiong 的回复:重复绑定事件,应该判断是否已经绑定过事件了,可以用全局变量判断。 具体怎么判断,求详细说明啊 var button1Click = false; $('#Button1').click(function(){……
灰常感谢啊,我再上一页,下一页,首页,尾页,分别添加了$(element).unbind('click');$(element).bind('click');后,解决了,ThankYou。

61,110

社区成员

发帖
与我相关
我的任务
社区描述
层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。
社区管理员
  • HTML(CSS)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧