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 相关文章推荐
常用参考资料(手册)下载或者链接
Jul 22 Javascript
FireFox与IE 下js兼容触发click事件的代码
Nov 20 Javascript
通过JS来判断页面控件是否获取焦点
Jan 03 Javascript
jquery表单验证插件formValidator使用方法
Apr 01 Javascript
浅谈JS正则表达式的RegExp对象和括号的使用
Jul 28 Javascript
js 基础篇必看(点击事件轮播图的简单实现)
Aug 20 Javascript
你不知道的 javascript【推荐】
Jan 08 Javascript
微信小程序 wx.login解密出现乱码的问题解决办法
Mar 10 Javascript
基于Vue 实现一个中规中矩loading组件
Apr 03 Javascript
vue点击自增和求和的实例代码
Nov 06 Javascript
vue 如何从单页应用改造成多页应用
Oct 23 Javascript
Ajax常用封装库——Axios的使用
May 08 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
DIY实用性框形天线
2021/03/02 无线电
PHP执行Curl时报错提示CURL ERROR: Recv failure: Connection reset by peer的解决方法
2014/06/26 PHP
php将textarea数据提交到mysql出现很多空格的解决方法
2014/12/19 PHP
Yii2.0 Basic代码中路由链接被转义的处理方法
2016/09/21 PHP
php mysql PDO 查询操作的实例详解
2017/09/23 PHP
PHP中的浅复制与深复制的实例详解
2017/10/26 PHP
jQuery AJAX回调函数this指向问题
2010/02/08 Javascript
目前流行的JavaScript库的介绍及对比
2013/09/29 Javascript
Nodejs sublime text 3安装与配置
2014/06/19 NodeJs
javascript中parseInt()函数的定义和用法分析
2014/12/20 Javascript
jquery遍历table的tr获取td的值实现方法
2016/05/19 Javascript
js 定义对象数组(结合)多维数组方法
2016/07/27 Javascript
简洁实用的BootStrap jQuery手风琴插件
2016/08/31 Javascript
Web纯前端“旭日图”实现元素周期表
2017/03/10 Javascript
Nodejs 发布自己的npm包并制作成命令行工具的实例讲解
2018/05/15 NodeJs
小程序实现分类页
2019/07/12 Javascript
Openlayers实现距离面积测量
2020/09/28 Javascript
Python的词法分析与语法分析
2013/05/18 Python
python基础教程之简单入门说明(变量和控制语言使用方法)
2014/03/25 Python
python3使用urllib模块制作网络爬虫
2016/04/08 Python
python字符串str和字节数组相互转化方法
2017/03/18 Python
python-opencv 将连续图片写成视频格式的方法
2019/01/08 Python
html5 datalist 选中option选项后的触发事件
2020/03/05 HTML / CSS
英国优质家居用品网上品牌:URBANARA
2018/06/01 全球购物
GANT葡萄牙官方商店:拥有美国运动服传统的生活方式品牌
2018/10/18 全球购物
当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?
2014/09/09 面试题
房屋转让协议书范本
2014/04/11 职场文书
三年级学生评语
2014/04/23 职场文书
毕业生求职信
2014/06/10 职场文书
体育口号大全
2014/06/18 职场文书
综治维稳工作承诺书
2014/08/30 职场文书
法制教育演讲稿
2014/09/10 职场文书
检察院起诉意见书
2015/05/20 职场文书
MySQL数据库压缩版本安装与配置详细教程
2021/05/21 MySQL
Spring Boot 整合 Apache Dubbo的示例代码
2021/07/04 Java/Android
JavaScript 事件捕获冒泡与捕获详情
2021/11/11 Javascript