jquery點(diǎn)擊實(shí)現(xiàn)升序降序圖標(biāo)切換
本文實(shí)例為大家分享了jquery點(diǎn)擊實(shí)現(xiàn)升序降序圖標(biāo)切換的具體代碼,供大家參考,具體內(nèi)容如下
需求: 有一個(gè)查詢結(jié)果,返回的是表格的形式,點(diǎn)擊表頭任何一列,都能實(shí)現(xiàn)升序/降序的UI變換,同時(shí)表格內(nèi)容該列也升序降序排列.支持分頁(yè).
實(shí)現(xiàn)步驟:
1.css
.table-sort { ? ? display: inline-block; ? ? width: 10px; ? ? height: 20px; ? ? margin-left: 5px; ? ? cursor: pointer !important; ? ? vertical-align: middle; ? ? position: relative } ? .table-sort i { ? ? border: 6px dashed transparent; ? ? position: absolute; ? ? left: 5px } ? .table-sort .sort-asc { ? ? top: 2px; ? ? border-top: none; ? ? border-bottom-style: solid; ? ? border-bottom-color: #b2b2b2 } ? .table-sort .sort-asc.cur, .table-sort .sort-asc:hover { ? ? border-bottom-color: #fff } ? .table-sort .sort-desc { ? ? bottom: 3px; ? ? border-bottom: none; ? ? border-top-style: solid; ? ? border-top-color: #b2b2b2 } ? .table-sort .sort-desc.cur, .table-sort .sort-desc:hover { ? ? border-top-color: #fff }
2.html部分:
在相應(yīng)的表頭加上樣式: sortIndex_? 這個(gè)用來(lái)標(biāo)識(shí)列,比如一個(gè)表格有5個(gè)列需要有排序功能,就可以依次設(shè)置5個(gè)th sortIndex_1 、sortIndex_2 ……
<th class="sortIndex_1"> ? ? 面積 <small>(畝)</small> ? ? <span class="table-sort"> ? ? ? ? ?<i class="sort-asc"></i> ? ? ? ? ?<i class="sort-desc"></i> ? ? </span> </th> <th class="sortIndex_2"> ? ? 人數(shù) <small>(位)</small> ? ? <span class="table-sort"> ? ? ? ? ?<i class="sort-asc"></i> ? ? ? ? ?<i class="sort-desc"></i> ? ? </span> </th>
3. html部分,寫(xiě)在form標(biāo)簽以內(nèi),需要提交給后臺(tái)的隱藏表單: orderByIndex- 標(biāo)識(shí)第幾列需要排序; ascOrDesc-標(biāo)識(shí)需要升序還是降序
<script> <input type="hidden" class="form-control" name="orderByIndex" id="orderByIndex" value="${orderByIndex}" /> <input type="hidden" class="form-control" name="ascOrDesc" id="ascOrDesc" value="${ascOrDesc}" /> </script>
4.javaScript部分
<script> ? ? $(function () { ? ? ? ? ? ? ? ? initSort(2);//有幾個(gè)列需要排序,這里數(shù)值就寫(xiě)幾 ? ? }); </script> <script> ? ? ? var initSort = function(maxColNumberNeedSort){ ? ? ? ? var orderByIndex = $("#orderByIndex").val(); ? ? ? ? var ascOrDesc = $("#ascOrDesc").val(); ? ? ? ? ? for(var i=1;i<=maxColNumberNeedSort;i++){ ? ? ? ? ? ? var indexStr = ".sortIndex_"+i; ? ? ? ? ? ? $(indexStr).find(".table-sort i").each(function() { ? ? ? ? ? ? ? ? $(this).removeClass("cur"); ? ? ? ? ? ? }); ? ? ? ? ? ? $(indexStr).bind("click", {index: i}, changeArrowRefreshData); ? ? ? ? } ? ? ? ? ? if(orderByIndex!=undefined&&ascOrDesc!=undefined){ ? ? ? ? ? ? var indexStr = ".sortIndex_"+orderByIndex; ? ? ? ? ? ? if(ascOrDesc==0){//降序 ? ? ? ? ? ? ? ? $(indexStr).find(".table-sort i").eq(1).addClass("cur"); ? ? ? ? ? ? }else{//升序 ? ? ? ? ? ? ? ? $(indexStr).find(".table-sort i").eq(0).addClass("cur"); ? ? ? ? ? ? } ? ? ? ? } ? ? }; ? ? var changeArrowRefreshData= function(event) { ? ? ? ? var index = event.data.index; ? ? ? ? var _this = $(this); ? ? ? ? if(_this.find(".table-sort i").eq(0).hasClass("cur")){//想要降序排列 ? ? ? ? ? ? $("#ascOrDesc").val(0); ? ? ? ? ? ? _this.find(".table-sort i").eq(0).removeClass("cur"); ? ? ? ? ? ? _this.find(".table-sort i").eq(1).addClass("cur"); ? ? ? ? }else{ ? ? ? ? ? ? $("#ascOrDesc").val(1); ? ? ? ? ? ? _this.find(".table-sort i").eq(1).removeClass("cur"); ? ? ? ? ? ? _this.find(".table-sort i").eq(0).addClass("cur"); ? ? ? ? } ? ? ? ? $("#orderByIndex").val(index); ? ? ? ? getTableData(1);//在此方法實(shí)現(xiàn)你的分頁(yè)獲取數(shù)據(jù)邏輯,刷新表格數(shù)據(jù). ? ? }; </script>
最終效果圖:第1列,第2列實(shí)現(xiàn)了手動(dòng)排序. (注意,一次操作,只能對(duì)一列排序,其它列的排序不會(huì)被點(diǎn)亮.)
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- jQuery實(shí)現(xiàn)條件搜索查詢、實(shí)時(shí)取值及升降序排序的方法分析
- jQuery EasyUI學(xué)習(xí)教程之datagrid點(diǎn)擊列表頭排序
- jQuery表格排序組件-tablesorter使用示例
- jQuery簡(jiǎn)單實(shí)現(xiàn)對(duì)數(shù)組去重及排序操作實(shí)例
- 簡(jiǎn)單的jquery拖拽排序效果實(shí)現(xiàn)代碼
- jquery中的sortable排序之后的保存狀態(tài)的解決方法
- 基于jquery的表格排序
- jQuery利用sort對(duì)DOM元素進(jìn)行排序操作
- jQuery實(shí)現(xiàn)使用sort方法對(duì)json數(shù)據(jù)排序的方法
- jquery+ashx無(wú)刷新GridView數(shù)據(jù)顯示插件(實(shí)現(xiàn)分頁(yè)、排序、過(guò)濾功能)
相關(guān)文章
jquery實(shí)現(xiàn)煙花效果(面向?qū)ο?
這篇文章主要為大家詳細(xì)介紹了jquery面向?qū)ο髮?shí)現(xiàn)煙花效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-03-03jquery插件uploadify實(shí)現(xiàn)帶進(jìn)度條的文件批量上傳
這篇文章主要介紹了jquery插件uploadify實(shí)現(xiàn)帶進(jìn)度條的文件批量上傳,感興趣的小伙伴們可以參考一下2015-12-12Jquery和JS獲取ul中l(wèi)i標(biāo)簽的實(shí)現(xiàn)方法
下面小編就為大家?guī)?lái)一篇Jquery和JS獲取ul中l(wèi)i標(biāo)簽的實(shí)現(xiàn)方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-06-06讓人印象深刻的10個(gè)jQuery手風(fēng)琴效果應(yīng)用
jQuery 是最流行的 JavaScript 開(kāi)發(fā)框架,它簡(jiǎn)化了 HTML 文檔遍歷,事件處理,動(dòng)畫(huà)以及 Ajax 交互,幫助 Web 開(kāi)發(fā)人員更快速的實(shí)現(xiàn)各種精美的界面效果2012-05-05