jquery使用列表標籤實現的可拖拽listbox

2021-06-19 08:59:11 字數 1612 閱讀 1119

前兩天遇到朋友提到listbox.

所以心血來潮,花了一下午時間自己使用jquery,利用列表標籤實現了乙個listbox.

**還未來得及優化,但功能已實現並可以使用,在此希望與大家分享**。

jquery-listbox-2.2

效果圖:

一.設計思路:

1.標籤的使用:既然是列表,那無疑選擇使用列表標籤(ul,ol)等比較方法,考慮到,如果需要數字的修飾,最終採用ol標籤

2.jquery自定義函式:相信網上已有很多教程,在此不贅述。有一點需要提一下,最開始使用的是(function ($) {}(jquery));這種方式,但在ie中雖然能執行,然會報錯。後來換成

(function ($) {}($));具體什麼原因,未詳查。
3.建立內容項:其實就是根據傳進來的資料生成li標籤並加入到ol標籤中。
4.上移,下移,刪除 功能:要實現這個,重點在於選中項,所以我用了乙個全域性變數 onelement 來標識被選中的項。上移的時候,將此項插入到他的prev()項前面。下移同理,使用next(),刪除則使用remove()
5.拖拽:本來jquery ui裡面有拖拽功能的實現,但如果僅為了推拽這個功能引入jquery ui這個庫,就有點多餘了,所以在網上找了乙個很小的推拽外掛程式:jquery drag and drop。
6.撤銷刪除:類似**站,設定乙個全域性變數,陣列。每次刪除時,將被刪除的項放入陣列中的第一項。在撤銷時,判斷如果陣列中有內容,則將第一項加入列表中,並再次進行拖拽的繫結。(注:在撤銷刪除後有乙個bug,無法將其他項推拽到第一位,但第一位的項能被推拽到其他位置。如果沒法接受此bug,可以考慮去掉「撤銷刪除」功能或「推拽」功能。)
7.鍵盤事件:考慮到操作較多,繫結鍵盤時候的時候,要求傳入操作標識陣列,而不是每乙個操作都進行單獨的方法。
/*繫結鍵盤事件*/

$.fn.bindkeyboardevent = function (keyarray) ; break;

case 38: if (isctrl && ismoveup) if (isselectedup && !isctrl) ; break;

case 40: if (isctrl && ismovedown) if (isselecteddown && !isctrl) ; break;

case 46: if (isdelete) ; break;

}}).keyup(function (e) );

}

8.css樣式:可以在css檔案中自定義樣式。

以上為所有設計思路,其實思路挺簡單,只是做起來花費一些時間而已。
二.測試瀏覽器
ie:7 8 9 10 ;firefox 25.0.1 可用。其他瀏覽器未測試。
三.實現和使用方式
實現和使用方式 在原始碼中有詳細的注釋,有什麼疑問可以參見原始碼。

使用jquery觸發a標籤跳轉

錯誤示例baidua 直接是觸發click事件是無法跳轉的 a tomain trigger click 正確示例 如果要用jquery觸發進行跳轉,那麼a標籤中 必須要有其它子標籤 然後觸發該子類標籤才能進行跳轉 target blank baidup 要有子標籤 這裡觸發的是a標籤中的p標籤 a...

jQuery實現GridView列表自定義顯示列

乙個系統中有時候會為了方便使用者操作,由使用者決定顯示列表中的哪些資料,示例如下 下面我們看下用jquery如何實現,有哪些注意點。抽出來的公用的jquery 如下 document ready function input belong btnreset click function 遍歷chec...

HTML列表標籤以及 , 使用

1 doctype html 2 html 3 head 45 meta charset utf 8 6 title title 7head 8 body bgcolor aliceblue 910 h1 我的電腦檔案列表 h1 11 h4 1213 ul type disc 14 li 我的電腦 ...