javascript - 用jquery實(shí)現(xiàn)表格行 置頂之后 如何跟后臺(tái)用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í)這部分代碼對(duì)解決問題沒什么作用,主要還是想知道如何與后臺(tái)交互 或者在前臺(tái)影響全局變量,從而保持當(dāng)前置頂位置
問題解答
回答1:得看看你這個(gè)置頂是永久性的還是一時(shí)性的!
如果是永久性的置頂,那你的數(shù)據(jù)肯定是存儲(chǔ)在數(shù)據(jù)庫(kù)里的,并且有個(gè)字段用來(lái)標(biāo)識(shí)該條數(shù)據(jù)是否為置頂數(shù)據(jù),綁定到前端的時(shí)候,通過標(biāo)識(shí)來(lái)判斷這條數(shù)據(jù)是否置頂,這個(gè)就完全不需要前端來(lái)考慮這個(gè)問題吧?你在前端只不過是把這部分?jǐn)?shù)據(jù)展示而已。
如果你的置頂只是一時(shí)性的,你可以在每次請(qǐng)求ajax數(shù)據(jù)之前,獲取到置頂數(shù)據(jù)行的某列數(shù)據(jù)作為標(biāo)識(shí)(這 個(gè)由你自己來(lái)定,不過該列的值必須是唯一的),然后再去請(qǐng)求ajax數(shù)據(jù),在綁定的時(shí)候,用你存儲(chǔ)下來(lái)的標(biāo)識(shí)跟請(qǐng)求到數(shù)據(jù)進(jìn)行判斷,相等的話就把改行數(shù)據(jù)設(shè)置為置頂。(感覺寫這種置頂沒多大意義, 因?yàn)檫@種置頂數(shù)據(jù)只有你自己能看的到,要是你把頁(yè)面關(guān)閉了一樣沒用,畢竟不是永久性的)
回答2:直接叫你們后臺(tái)寫個(gè)接口,當(dāng)你點(diǎn)擊置頂?shù)臅r(shí)候,把這條數(shù)據(jù)的id傳到后臺(tái),再讓后臺(tái)把它排到第一條數(shù)據(jù)返回給你,這樣即使有settimeout你接收到的也是你置頂后的數(shù)據(jù)啦
相關(guān)文章:
1. Docker for Mac 創(chuàng)建的dnsmasq容器連不上/不工作的問題2. javascript - QWebEngineView 如何爬 angular 的動(dòng)態(tài)數(shù)據(jù)?3. javascript - 使用angular 的ui-sref 中出現(xiàn)了中文參數(shù),點(diǎn)擊跳轉(zhuǎn)后瀏覽器的地址欄里出現(xiàn)轉(zhuǎn)義后的%AE....%a%44. java - ConcurrentHashMap中的get()方法為什么可以不加鎖?5. java - 郵箱如何發(fā)送html內(nèi)容6. html5 - 這個(gè)代碼顯示功能如何實(shí)現(xiàn)?7. javascript - 用JS 七牛上傳圖片出現(xiàn)文件已存在的錯(cuò)誤(file exists)8. java - 字節(jié)流轉(zhuǎn)成字符串之后,在通過字符串轉(zhuǎn)成字節(jié)流后的文件為什么會(huì)不一樣?9. css3 - 圖片等比例縮放10. java - 如何理解“不要通過共享內(nèi)存來(lái)通信,而應(yīng)該通過通信來(lái)共享內(nèi)存”?
