用jquery在ready(function(){});中写了对table的操作,但更新table内容后,操作失效! 操作table的方法写成 live 或者delegate (具体使用方法可以查看文档) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我加了live还是老问题,初始加载页面可以,但异步更新table中的数据后点击还是没反应,我本意是想做个用GridView控件排序,第一次加载是点击表头可以实现排序,但点下一页table记录重新加载后就不行了,代码如下,也是网上找的,修修改改如下: $(document).ready(function() { //排序 sort("MyControl1_GridView1");});function sort(tbl_ID) { alert("第一步"); $("#" + tbl_ID).each(function() { var $table = $(this); alert("第二步"); $('th', $table).each(function(column) { alert("第三步"); $(this).live("click", function() { var sColumnTitile = $(this).html(); var bSort = ($(this).html().indexOf('▲') > -1); if (bSort) $(this).html(sColumnTitile.replace("▲", "") + '▼'); else $(this).html(sColumnTitile.replace("▼", "") + '▲'); var rows = $table.find('tbody > tr').get(); rows.sort(function(a, b) { var keyA = $(a).children('td').eq(column).text().toUpperCase(); var keyB = $(b).children('td').eq(column).text().toUpperCase(); if (bSort) { if (keyA > keyB) return 1; if (keyA < keyB) return -1; } else { if (keyA < keyB) return 1; if (keyA > keyB) return -1; } return 0; }); $.each(rows, function(index, row) { $table.children('tbody').append(row); }) }); }); });} f (bSort) { if (keyA > keyB) return 1; if (keyA < keyB) return -1; } else { if (keyA < keyB) return 1; if (keyA > keyB) return -1; } return 0;这个是干嘛的 去掉试试 谢谢回复,我试了,不关那一行的事。我的代码中加了几个提示的alert,问题是第二次加载table后,点表头一个alter都没出现,说明它根本就没执行这个函数。 GridView控件 是不是在ascx 里面呢? 查看源代码 看看ID是不是 不对 你用的gridview,其表头可以用SortExpression设置排序<asp:BoundField DataField="devicetype" HeaderText="设备类型" SortExpression="" > div+css+js JavaScript 关于javascript追加的一个问题 js OCX 指针传递 求一个JS实例 如何在js中比较当前时间与某一时间大小 一个关于javascript压缩混淆工具的问题 关于window.showModalDialog的关闭问题,请教。 js 如何点击子对象时让点击父对象的事件不执行 用webbrowser写的打印及预览可以修改吗 ASP.NET使用JQuery.Validate验证用户名是否已经存在 Chrome插件中关于js函数的调用.
$(document).ready(function() {
//排序
sort("MyControl1_GridView1");
});function sort(tbl_ID) {
alert("第一步");
$("#" + tbl_ID).each(function() {
var $table = $(this);
alert("第二步");
$('th', $table).each(function(column) {
alert("第三步");
$(this).live("click", function() {
var sColumnTitile = $(this).html(); var bSort = ($(this).html().indexOf('▲') > -1);
if (bSort) $(this).html(sColumnTitile.replace("▲", "") + '▼');
else $(this).html(sColumnTitile.replace("▼", "") + '▲'); var rows = $table.find('tbody > tr').get(); rows.sort(function(a, b) {
var keyA = $(a).children('td').eq(column).text().toUpperCase();
var keyB = $(b).children('td').eq(column).text().toUpperCase();
if (bSort) {
if (keyA > keyB) return 1;
if (keyA < keyB) return -1;
} else {
if (keyA < keyB) return 1;
if (keyA > keyB) return -1;
} return 0;
});
$.each(rows, function(index, row) { $table.children('tbody').append(row); })
});
});
});
}
if (keyA > keyB) return 1;
if (keyA < keyB) return -1;
} else {
if (keyA < keyB) return 1;
if (keyA > keyB) return -1;
} return 0;这个是干嘛的 去掉试试
我的代码中加了几个提示的alert,问题是第二次加载table后,点表头一个alter都没出现,说明它根本就没执行这个函数。