5
我正在使用datatables版本1.10。 我有次點擊時的分類圖標(向上和向下箭頭)排序應該工作服務器端 數據表1.10僅通過排序排序圖標排序
- 點擊時的要求,排序應該工作locally.This是因爲誤THEAD用戶點擊和服務器獲得不必要的負擔。
目的: 我想保持這兩個
- 本地排序[點擊THEAD沒有圖標](僅適用於目前在桌面顯示器/頁數據)
- 服務器端排序[只點擊圖標]。
該問題: 數據表使用的CSS背景圖像進行排序。這使得很難檢測點擊圖標,因爲根據我的知識,點擊無法捕獲CSS背景圖像。
這就是我想出了,但仍沒有任何進展
的jsfiddle:http://jsfiddle.net/bababalcksheep/mae29pau/10/
JS:
$(document).ready(function() {
//http://www.datatables.net/reference/api/
var url = "http://www.json-generator.com/api/json/get/cbEfqLwFaq?indent=2";
//
$('th').on("click.DT", function (event) {
event.stopImmediatePropagation();
});
var table = $('#example').DataTable({
"processing": true,
"serverSide": false,
"ajax": url
});
//
//$('th').off('click.DT');
// sort internally
table.column('2').order('asc');
});
UPDATE-1:
的jsfiddle: http://jsfiddle.net/bababalcksheep/mae29pau/14/
我能夠通過添加一個sortMask提前一步,然後綁定一個點擊它。 sortMask是ID添加到每列一個div <thead> -> <tr> -> <th>
CSS:
.sortMask {
width:19px;
height:19px;
float:right;
display:inline-block;
z-index:0;
margin-right: -19px;
/*background:red;*/
}
JS:
$('th').on("click.DT", function (e) {
//stop Propagation if clciked outsidemask
//becasue we want to sort locally here
if (!$(e.target).hasClass('sortMask')) {
e.stopImmediatePropagation();
}
});
BTW儘量讓客戶做出這種事情,因爲如果你有多個用戶點擊排序服務器將有一個不必要的負擔。 – 2014-12-05 14:46:40
你可以插入圖標
點擊表標題排序是正常預期的用戶行爲和最常見的用戶界面。沒有意義的是,他們不小心這樣做 – charlietfl 2014-12-05 14:48:26