jquery 應(yīng)用代碼 方便的排序功能
更新時(shí)間:2010年02月06日 15:59:43 作者:
點(diǎn)擊后可以輸入排序的數(shù)字編號(hào),移開(kāi)后自動(dòng)更新數(shù)據(jù)庫(kù)。
終極目的:想做一個(gè)方便的排序功能。
具體實(shí)現(xiàn):點(diǎn)擊后可以輸入排序的數(shù)字編號(hào),移開(kāi)后自動(dòng)更新數(shù)據(jù)庫(kù)。
1,我想把這個(gè)功能用<span>來(lái)完成,也就需要一個(gè)在頁(yè)面上監(jiān)控指定的span的東西,他就是:
ready(fn)當(dāng)DOM載入就緒可以查詢(xún)及操縱時(shí)綁定一個(gè)要執(zhí)行的函數(shù)。
$(document).ready(function(){
// 在這里寫(xiě)你的代碼...
});
2,頁(yè)面上<span>很多,如何才能區(qū)分呢?用id?還是class?id太單一,于是用class,因?yàn)榕判虿皇轻槍?duì)一條數(shù)據(jù),而是多條。
<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('測(cè)試下先');<BR> });<BR><BR>}); <BR>
4,然后要讓span變成一個(gè)輸入框才行,go
$(document).ready(function(){
$(".BY").click(function() {
var old = $(this).text();
var o = $(this);
o.html("<input class=\"OnBY\" type=\"text\" value=\"" + old + "\"/>");
});
});
5,這時(shí)發(fā)現(xiàn)了一個(gè) 問(wèn)題,無(wú)法點(diǎn)擊的。點(diǎn)了之后數(shù)字沒(méi)了。因此就無(wú)法輸入更改了。想個(gè)什么辦法呢?還記得自動(dòng)獲取選擇么?
$(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,很簡(jiǎn)單的可以更改了。不過(guò)當(dāng)鼠標(biāo)移開(kāi)的時(shí)候,不能變回去了。郁悶,咋整?
$(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());
});
});
});
用失去焦點(diǎn)函數(shù),把html代碼替換回來(lái)就是。換回來(lái)的還是修改的值。
7,不過(guò) 不能更數(shù)據(jù)庫(kù)交涉,接下來(lái)就要用到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參數(shù)提交給Admin_BY.aspx處理,后臺(tái)的處理我就不多說(shuō)了。用Requst.QueryString來(lái)獲取。
8,再改進(jìn)一下,排序肯定要指定一個(gè)數(shù)據(jù)ID
<span class="BY" DbID="3" title="點(diǎn)擊修改">3</span><br />
<span class="BY" DbID="2" title="點(diǎn)擊修改">2</span><br />
<span class="BY" DbID="1" title="點(diǎn)擊修改">1</span><br />
<span class="BY" DbID="0" title="點(diǎn)擊修改">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("發(fā)生錯(cuò)誤: " + msg);
o.html(old);
}
}
});
});
});
});
還有更多想法,等有空再增加上去。比如修改時(shí),數(shù)據(jù)處理有個(gè)時(shí)間,在等待的時(shí)間里,改變下鼠標(biāo)樣式為繁忙等。
或更新后,重新裝載數(shù)據(jù),因?yàn)榫唧w數(shù)據(jù)不同,只能具體應(yīng)用。也或者直接刷新頁(yè)面。
初學(xué)原創(chuàng),請(qǐng)各位高手不吝賜教。
Kas
PS:關(guān)于ERic Poon 兄弟說(shuō)何處用到,抓個(gè)圖參考下吧。
具體實(shí)現(xiàn):點(diǎn)擊后可以輸入排序的數(shù)字編號(hào),移開(kāi)后自動(dòng)更新數(shù)據(jù)庫(kù)。
1,我想把這個(gè)功能用<span>來(lái)完成,也就需要一個(gè)在頁(yè)面上監(jiān)控指定的span的東西,他就是:
ready(fn)當(dāng)DOM載入就緒可以查詢(xún)及操縱時(shí)綁定一個(gè)要執(zhí)行的函數(shù)。
$(document).ready(function(){
// 在這里寫(xiě)你的代碼...
});
2,頁(yè)面上<span>很多,如何才能區(qū)分呢?用id?還是class?id太單一,于是用class,因?yàn)榕判虿皇轻槍?duì)一條數(shù)據(jù),而是多條。
<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('測(cè)試下先');<BR> });<BR><BR>}); <BR>
4,然后要讓span變成一個(gè)輸入框才行,go
復(fù)制代碼 代碼如下:
$(document).ready(function(){
$(".BY").click(function() {
var old = $(this).text();
var o = $(this);
o.html("<input class=\"OnBY\" type=\"text\" value=\"" + old + "\"/>");
});
});
5,這時(shí)發(fā)現(xiàn)了一個(gè) 問(wèn)題,無(wú)法點(diǎn)擊的。點(diǎn)了之后數(shù)字沒(méi)了。因此就無(wú)法輸入更改了。想個(gè)什么辦法呢?還記得自動(dòng)獲取選擇么?
復(fù)制代碼 代碼如下:
$(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,很簡(jiǎn)單的可以更改了。不過(guò)當(dāng)鼠標(biāo)移開(kāi)的時(shí)候,不能變回去了。郁悶,咋整?
復(fù)制代碼 代碼如下:
$(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());
});
});
});
用失去焦點(diǎn)函數(shù),把html代碼替換回來(lái)就是。換回來(lái)的還是修改的值。
7,不過(guò) 不能更數(shù)據(jù)庫(kù)交涉,接下來(lái)就要用到ajax??纯础?
復(fù)制代碼 代碼如下:
$(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參數(shù)提交給Admin_BY.aspx處理,后臺(tái)的處理我就不多說(shuō)了。用Requst.QueryString來(lái)獲取。
8,再改進(jìn)一下,排序肯定要指定一個(gè)數(shù)據(jù)ID
<span class="BY" DbID="3" title="點(diǎn)擊修改">3</span><br />
<span class="BY" DbID="2" title="點(diǎn)擊修改">2</span><br />
<span class="BY" DbID="1" title="點(diǎn)擊修改">1</span><br />
<span class="BY" DbID="0" title="點(diǎn)擊修改">0</span><br />
復(fù)制代碼 代碼如下:
$(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("發(fā)生錯(cuò)誤: " + msg);
o.html(old);
}
}
});
});
});
});
還有更多想法,等有空再增加上去。比如修改時(shí),數(shù)據(jù)處理有個(gè)時(shí)間,在等待的時(shí)間里,改變下鼠標(biāo)樣式為繁忙等。
或更新后,重新裝載數(shù)據(jù),因?yàn)榫唧w數(shù)據(jù)不同,只能具體應(yīng)用。也或者直接刷新頁(yè)面。
初學(xué)原創(chuàng),請(qǐng)各位高手不吝賜教。
Kas
PS:關(guān)于ERic Poon 兄弟說(shuō)何處用到,抓個(gè)圖參考下吧。
相關(guān)文章
jquery+CSS實(shí)現(xiàn)的水平布局多級(jí)網(wǎng)頁(yè)菜單效果
這篇文章主要介紹了jquery+CSS實(shí)現(xiàn)的水平布局多級(jí)網(wǎng)頁(yè)菜單效果,涉及jquery頁(yè)面元素屬性動(dòng)態(tài)變換效果實(shí)現(xiàn)技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-08-08
一款基于jQuery的圖片場(chǎng)景標(biāo)注提示彈窗特效
這篇文章主要介紹了一款基于jQuery的圖片場(chǎng)景標(biāo)注提示彈窗特效,需要的朋友可以參考下2015-01-01
jquery操作checked屬性以及disabled屬性的多種方法
這篇文章主要介紹了jquery控制checked屬性以及disabled屬性的多種方法,下面只提到checked,其實(shí)disabled在jquery里的用法和checked是一模一樣的,需要的朋友可以參考下2014-06-06
基于jQuery架構(gòu)javascript基礎(chǔ)體系
jQuery畢竟還只是一個(gè)基礎(chǔ)的最底層的工具集,封裝元素選擇器,事件等等,基本上能滿足一般的需求,但要從整體的WEB的周度來(lái)看,為了提高javascript開(kāi)發(fā)的效率與可重用性,就需要有一個(gè)整體的布局2011-01-01

