jquery 应用代码 方便的排序功能


Posted in Javascript onFebruary 06, 2010

终极目的:想做一个方便的排序功能。
具体实现:点击后可以输入排序的数字编号,移开后自动更新数据库。

1,我想把这个功能用<span>来完成,也就需要一个在页面上监控指定的span的东西,他就是:
ready(fn)当DOM载入就绪可以查询及操纵时绑定一个要执行的函数。
$(document).ready(function(){
// 在这里写你的代码...
});
2,页面上<span>很多,如何才能区分呢?用id?还是class?id太单一,于是用class,因为排序不是针对一条数据,而是多条。
<span class="BY">3</span><br /><BR><span class="BY">2</span><br /><BR><span class="BY">1</span><br /><BR><span class="BY">0</span><br />

3,绑定的事件我想肯定是click
$(document).ready(function(){<BR> $(".BY").click(function() {<BR> alert('测试下先');<BR> });<BR><BR>}); <BR>
4,然后要让span变成一个输入框才行,go

$(document).ready(function(){ 
$(".BY").click(function() { 
var old = $(this).text(); 
var o = $(this); 
o.html("<input class=\"OnBY\" type=\"text\" value=\"" + old + "\"/>"); 
}); 
});

5,这时发现了一个 问题,无法点击的。点了之后数字没了。因此就无法输入更改了。想个什么办法呢?还记得自动获取选择么?
$(document).ready(function(){ 
$(".BY").click(function() { 
var old = $(this).text(); 
var o = $(this); 
o.html("<input class=\"OnBY\" type=\"text\" onMouseOver=\"this.select();\" value=\"" + old + "\"/>"); 
}); 
});

6,很简单的可以更改了。不过当鼠标移开的时候,不能变回去了。郁闷,咋整?
$(document).ready(function(){ 
$(".BY").click(function() { 
var old = $(this).text(); 
var o = $(this); 
o.html("<input class=\"OnBY\" type=\"text\" onMouseOver=\"this.select();\" value=\"" + old + "\"/>"); 
$(".OnBY").blur(function() { 
o.html($(".OnBY").val()); 
}); 
}); 
});

用失去焦点函数,把html代码替换回来就是。换回来的还是修改的值。
7,不过 不能更数据库交涉,接下来就要用到ajax。看看。
$(document).ready(function(){ 
$(".BY").click(function() { 
var old = $(this).text(); 
var o = $(this); 
o.html("<input class=\"OnBY\" type=\"text\" onMouseOver=\"this.select();\" value=\"" + old + "\"/>"); 
$(".OnBY").blur(function() { 
$.ajax({ 
type: "GET", 
url: "Admin_BY.aspx", 
data: "BY=" + $(".OnBY").val(), 
success: function(msg) { 
alert(msg); 
o.html($(".OnBY").val()); 
} 
}); 
}); 
}); 
});

把修改的By参数提交给Admin_BY.aspx处理,后台的处理我就不多说了。用Requst.QueryString来获取。
8,再改进一下,排序肯定要指定一个数据ID

<span class="BY" DbID="3" title="点击修改">3</span><br />
<span class="BY" DbID="2" title="点击修改">2</span><br />
<span class="BY" DbID="1" title="点击修改">1</span><br />
<span class="BY" DbID="0" title="点击修改">0</span><br />

$(document).ready(function(){ 
$(".BY").click(function() { 
var old = $(this).text(); 
var o = $(this); 
o.html("<input class=\"OnBY\" type=\"text\" onMouseOver=\"this.select();\" value=\"" + old + "\"/>"); 
$(".OnBY").blur(function() { 
$.ajax({ 
type: "GET", 
url: "Admin_BY.aspx", 
data: "ID=" + o.attr("BYID") + "&BY=" + $(".OnBY").val(), 
success: function(msg) { 
if (msg.indexOf("[BYNOK]")>0) { 
o.html($(".OnBY").val()); 
} else { 
alert("发生错误: " + msg); 
o.html(old); 
} 
} 
}); 
}); 
}); 
});

还有更多想法,等有空再增加上去。比如修改时,数据处理有个时间,在等待的时间里,改变下鼠标样式为繁忙等。
或更新后,重新装载数据,因为具体数据不同,只能具体应用。也或者直接刷新页面。

初学原创,请各位高手不吝赐教。
Kas

PS:关于ERic Poon 兄弟说何处用到,抓个图参考下吧。
jquery 应用代码 方便的排序功能

Javascript 相关文章推荐
window.dialogArguments 使用说明
Apr 11 Javascript
jquery默认校验规则整理
Mar 24 Javascript
jquery进行数组遍历如何跳出当前的each循环
Jun 05 Javascript
用jquery模仿的a的title属性的例子
Oct 22 Javascript
jQuery Easyui学习之datagrid 动态添加、移除editor
Jan 27 Javascript
Jquery组件easyUi实现表单验证示例
Aug 23 Javascript
信息滚动效果的实例讲解
Sep 18 Javascript
chorme 浏览器记住密码后input黄色背景处理方法(两种)
Nov 22 Javascript
在vue中阻止浏览器后退的实例
Nov 06 Javascript
vuex实现数据状态持久化
Nov 11 Javascript
vue 中 elment-ui table合并上下两行相同数据单元格
Dec 26 Javascript
js实现左右轮播图
Jan 09 Javascript
jquery1.4后 jqDrag 拖动 不可用
Feb 06 #Javascript
javascript小数计算出现近似值的解决办法
Feb 06 #Javascript
jquery 插件实现图片延迟加载效果代码
Feb 06 #Javascript
Lazy Load 延迟加载图片的 jQuery 插件
Feb 06 #Javascript
jquery.lazyload  实现图片延迟加载jquery插件
Feb 06 #Javascript
利用jQuery 实现GridView异步排序、分页的代码
Feb 06 #Javascript
javascript contains和compareDocumentPosition 方法来确定是否HTML节点间的关系
Feb 04 #Javascript
You might like
PHP中call_user_func_array()函数的用法演示
2012/02/05 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(八)
2014/06/23 PHP
php中socket的用法详解
2014/10/24 PHP
Joomla数据库操作之JFactory::getDBO用法
2016/05/05 PHP
JavaScript库 开发规则
2009/01/31 Javascript
javascript循环变量注册dom事件 之强大的闭包
2010/09/08 Javascript
关于捕获用户何时点击window.onbeforeunload的取消事件
2011/03/06 Javascript
jquery二级导航内容均分的原理及实现
2013/08/13 Javascript
JavaScript实现信用卡校验方法
2015/04/07 Javascript
javascript模拟命名空间
2015/04/17 Javascript
深入理解JavaScript中的call、apply、bind方法的区别
2016/05/30 Javascript
Node.js 实现简单的接口服务器的实例代码
2017/05/23 Javascript
Angular2+如何去除url中的#号详解
2017/12/20 Javascript
JavaScript中利用Array filter() 方法压缩稀疏数组
2018/02/24 Javascript
基于vue-video-player自定义播放器的方法
2018/03/21 Javascript
Vue写一个简单的倒计时按钮功能
2018/04/20 Javascript
详解webpack loader和plugin编写
2018/10/12 Javascript
浅谈layui框架自带分页和表格重载的接口解析问题
2019/09/11 Javascript
Vue的transition-group与Virtual Dom Diff算法的使用
2019/12/09 Javascript
详解JavaScript类型判断的四种方法
2020/10/21 Javascript
从源码角度来回答keep-alive组件的缓存原理
2021/01/18 Javascript
[03:30]DOTA2完美“圣”典精彩集锦
2016/12/27 DOTA
[02:46]完美世界DOTA2联赛PWL DAY4集锦
2020/11/03 DOTA
Python开发WebService系列教程之REST,web.py,eurasia,Django
2014/06/30 Python
Python中的字典遍历备忘
2015/01/17 Python
将Emacs打造成强大的Python代码编辑工具
2015/11/20 Python
celery4+django2定时任务的实现代码
2018/12/23 Python
ActiveMQ:使用Python访问ActiveMQ的方法
2019/01/30 Python
python中如何实现将数据分成训练集与测试集的方法
2019/09/13 Python
详解Anaconda 的安装教程
2020/09/23 Python
《晏子使楚》教学反思
2014/02/08 职场文书
2014年租房协议书范本
2014/10/30 职场文书
敬老院志愿者活动总结
2015/05/06 职场文书
女性励志书籍推荐
2019/08/19 职场文书
CSS 伪元素::marker详解
2021/06/26 HTML / CSS
Meta增速拉垮,元宇宙难当重任
2022/04/29 数码科技