如何限制datatable列寬--(收縮內(nèi)容)

2021-8-10    前端達人

實現(xiàn)功能:dataTable某列內(nèi)容過長的話,只顯示部分內(nèi)容,鼠標點擊顯示全部,再點擊顯示部分??梢郧袚Q。

效果圖:

鼠標點擊:

如果再次點擊,備注內(nèi)容又收縮了。

JS實現(xiàn)代碼如下:

var remarkShowLength = 10;//默認現(xiàn)實的字符串長度

datatable中的配置:

首先在 columnDefs 中顯示文本的時候,如果超長,就只顯示部分。

然后通過 createdRow ,如果備注信息超長的話,給該td元素添加上onclick時間,鼠標點擊的時候,可以進行切換。并且將全部的字符信息 data.remarks 放置到屬性中去,以便后面可以取出來。


  1. "createdRow": function( row, data, dataIndex ) {
  2. if(data.remarks.length > remarkShowLength){//只有超長,才有td點擊事件
  3. $(row).children('td').eq(7).attr('onclick','javascript:changeShowRemarks(this);');
  4. }
  5. $(row).children('td').eq(7).attr('content',data.remarks);
  6. },
  7. "ajax" : {
  8. "url" : "/cluster/list?importantLevel=" + $('#searchImportantLevelSelect').val()
  9. },
  10. "columnDefs" : [
  11. {
  12. "type": "date",
  13. "targets": 7,
  14. "render": function (data, type, full, meta) {
  15. if (full.remarks.length > remarkShowLength) {
 return getPartialRemarksHtml(full.remarks);//顯示部分信息
 } else {

 return full.remarks;//顯示原始全部信息 }

 }
}
]

下面從td的屬性中取出全部的remark,然后根據(jù)當前是顯示的全部還是顯示的部分信息,進行切換。


  1. //切換顯示備注信息,顯示部分或者全部
  2. function changeShowRemarks(obj){//obj是td
  3. var content = $(obj).attr("content");
  4. if(content != null && content != ''){
  5. if($(obj).attr("isDetail") == 'true'){//當前顯示的是詳細備注,切換到顯示部分
  6. //$(obj).removeAttr('isDetail');//remove也可以
  7. $(obj).attr('isDetail',false);
  8. $(obj).html(getPartialRemarksHtml(content));
  9. }else{//當前顯示的是部分備注信息,切換到顯示全部
  10. $(obj).attr('isDetail',true);
  11. $(obj).html(getTotalRemarksHtml(content));
  12. }
  13. }
  14. }

 


  1. //部分備注信息
  2. function getPartialRemarksHtml(remarks){
  3. return remarks.substr(0,remarkShowLength) + '&nbsp;&nbsp;<a href="javascript:void(0);" ><b>...</b></a>';
  4. }
  5. //全部備注信息
  6. function getTotalRemarksHtml(remarks){
  7. return remarks + '&nbsp;&nbsp;<a href="javascript:void(0);" >收起</a>';
  8. }

原文鏈接:https://blog.csdn.net/zz_chst/article/details/79587936?utm_source=blogxgwz5

藍藍設(shè)計建立了UI設(shè)計分享群,每天會分享國內(nèi)外的一些優(yōu)秀設(shè)計,如果有興趣的話,可以進入一起成長學(xué)習(xí),請掃碼ben_lanlan,報下信息,會請您入群。歡迎您加入噢~~希望得到建議咨詢、商務(wù)合作,也請與我們聯(lián)系。

文章來源:csdn

分享此文一切功德,皆悉回向給文章原作者及眾讀者.
免責(zé)聲明:藍藍設(shè)計尊重原作者,文章的版權(quán)歸原作者。如涉及版權(quán)問題,請及時與我們?nèi)〉寐?lián)系,我們立即更正或刪除。

藍藍設(shè)計bouu.cn )是一家專注而深入的界面設(shè)計公司,為期望卓越的國內(nèi)外企業(yè)提供卓越的UI界面設(shè)計、BS界面設(shè)計 、 cs界面設(shè)計 、 ipad界面設(shè)計 、 包裝設(shè)計 、 圖標定制 、 用戶體驗 、交互設(shè)計、 網(wǎng)站建設(shè) 、平面設(shè)計服務(wù)

分享本文至:

日歷

鏈接

個人資料

存檔