javascript - 用jquery實(shí)現(xiàn)表格行 置頂之后 如何跟后臺用ajax交互 在刷新之后仍保持當(dāng)前位置?
問題描述
如題所示,在每行的后面有一個(gè)top按鈕,點(diǎn)擊置頂,由于有settimeout自刷新,并重新獲取數(shù)據(jù),所以這個(gè)置頂位置并不能保持,每次刷新之后就沒有效果了
代碼:
$('.top').click(function(){ var $tr = $(this).parents('tr'); $tr.fadeOut().fadeIn();$('tbody').prepend($tr); $(this).css({'color':'red','font-weight':'bold'});});
其實(shí)這部分代碼對解決問題沒什么作用,主要還是想知道如何與后臺交互 或者在前臺影響全局變量,從而保持當(dāng)前置頂位置
問題解答
回答1:得看看你這個(gè)置頂是永久性的還是一時(shí)性的!
如果是永久性的置頂,那你的數(shù)據(jù)肯定是存儲在數(shù)據(jù)庫里的,并且有個(gè)字段用來標(biāo)識該條數(shù)據(jù)是否為置頂數(shù)據(jù),綁定到前端的時(shí)候,通過標(biāo)識來判斷這條數(shù)據(jù)是否置頂,這個(gè)就完全不需要前端來考慮這個(gè)問題吧?你在前端只不過是把這部分?jǐn)?shù)據(jù)展示而已。
如果你的置頂只是一時(shí)性的,你可以在每次請求ajax數(shù)據(jù)之前,獲取到置頂數(shù)據(jù)行的某列數(shù)據(jù)作為標(biāo)識(這 個(gè)由你自己來定,不過該列的值必須是唯一的),然后再去請求ajax數(shù)據(jù),在綁定的時(shí)候,用你存儲下來的標(biāo)識跟請求到數(shù)據(jù)進(jìn)行判斷,相等的話就把改行數(shù)據(jù)設(shè)置為置頂。(感覺寫這種置頂沒多大意義, 因?yàn)檫@種置頂數(shù)據(jù)只有你自己能看的到,要是你把頁面關(guān)閉了一樣沒用,畢竟不是永久性的)
回答2:直接叫你們后臺寫個(gè)接口,當(dāng)你點(diǎn)擊置頂?shù)臅r(shí)候,把這條數(shù)據(jù)的id傳到后臺,再讓后臺把它排到第一條數(shù)據(jù)返回給你,這樣即使有settimeout你接收到的也是你置頂后的數(shù)據(jù)啦
相關(guān)文章:
1. javascript - sublime快鍵鍵問題2. javascript - immutable配合react提升性能?3. vue.js - Vue 如何像Angular.js watch 一樣監(jiān)聽數(shù)據(jù)變化4. 實(shí)現(xiàn)bing搜索工具urlAPI提交5. javascript - 移動端上不能實(shí)現(xiàn)拖拽布局嗎?6. 如何解決Centos下Docker服務(wù)啟動無響應(yīng),且輸入docker命令無響應(yīng)?7. javascript - nodejs關(guān)于進(jìn)程間發(fā)送句柄的一點(diǎn)疑問8. thinkPHP5中獲取數(shù)據(jù)庫數(shù)據(jù)后默認(rèn)選中下拉框的值,傳遞到后臺消失不見。有圖有代碼,希望有人幫忙9. java - 使用fastjson對HashMap進(jìn)行序列化錯(cuò)誤10. index.php錯(cuò)誤,求指點(diǎn)

網(wǎng)公網(wǎng)安備