国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

關于數據與后端進行交流匹配(點亮星星)

2019-11-20 09:18:48
字體:
來源:轉載
供稿:網友

1.在項目中碰到了商品評價頁面,里面有關于對商品的星星評價,當時的我只是把效果寫出來了(就是用戶點擊幾顆星星亮就顯現幾顆亮),

當我做好頁面交給后端同事的時候,他說我這樣做沒有意義他沒法做,那時我的腦子有些懵了。

后來后端同事說他來搗騰算了,作為一名21世紀的陽光好青年怎么能夠把自己的任務都讓同事來幫忙完成呢~

通過同事一番指教和自己的探索,總算明白了這里面的關系,下面我通過自己的話來說明這個程序應該怎么寫,要具備哪些操作。

a,先上圖:

b:上面圖片評價一個亮了5顆,一個亮了4顆,是什么東西讓它這樣的呢?見下圖:

是的,沒錯,起始星星的點亮顆數就是因為data

c: 現在可以來談論一下這個data了,可是這個data是個什么東西呢?

原來他是前端和后端約定好在取存數據的地方(可以給它取任意名字tada,tdat都可以),后端可以給它賦值,data等于多少就亮多少顆星星。可是為什么要這個data呢?

是醬紫的:用戶a點擊星星的時候是為了之后可以給用戶b用戶c用戶d...看的,所以用戶點擊的這個星星的個數必須可以存儲(賦值)在某個地方(也就是data)上讓后臺能夠取到

也就是前端賦值,后端取值,而后后端把取得的數據儲存在數據庫中而后重新賦值于data上,以顯示用戶a曾評價的好評的星星個數。

前端賦值-----》后端取值--》后端儲存數據--》后端根據儲存的數據反饋給前端--》前端根據后端反饋的數據在頁面中展現相應的效果

好了,清楚了邏輯就可以寫程序了:

$('.evaluate_mark').each(function(){var star = $(this).find('.u-grade').attr('data'); //獲取data 一個為5,一個為4/*alert(star)*/$(this).find('.u-grade div').removeClass('light'); //移除所有class的 light$(this).find('.u-grade div').each(function(i,ele){ //ele當前的元素, i當前元素的索引if(i<star){ /*alert(i);*/ /*alert(ele);*/ $(ele).addClass('light'); }});});

上面的代碼比較簡單,首先遍歷,遍歷找到.u-grade下面的div,也就是u-grada_item,

找到它之后把它所有的light移除掉(light是css中點亮星星的class),而后把u-grada_item進行遍歷,star已經取得了data值,根據i<star進行判斷

從而顯示星星亮度的個數,也就是上面第一張圖一個亮五顆星一個亮四顆。

4.1:至此我們已經完成了后端賦值,前端表現效果這一塊了。此時還差兩塊,

一塊是用戶點擊產生效果這一塊,另一塊是把用戶點擊當前星星的那個數值賦值在data上(讓后端取值保存,重新賦值展現)

4.2:下面來做用戶點擊表現效果這一塊

$(function(){$.setGrade = function($ele,index){var $item = $ele.find(".u-grade_item");$item.removeClass("light"); $item.slice(0,index+1).addClass("light"); /*alert(index+1);*/};    (function(){  var $item = $(".u-grade .u-grade_item");   $item.click(function(){  var $this = $(this); /*定義一個變量保存當前的$item對象*/  var index = $this.parent(".u-grade").children(".u-grade_item").index($this);   //通過index()返回指定元素的index位置,也就是自己所認為的當前元素的索引值  /*alert(index);*/  $.setGrade($this.parent(),index); //jQuery下的靜態方法  })})();}); 

a:代碼實現就不一一說了,可以看注釋,就這樣,就完成用戶點擊產生效果這一塊,下面只差最后一塊了,把用戶點擊的這個星星的數值賦值在data上,

明確這個就很好辦了:

(function(){var $item = $(".u-grade .u-grade_item"); $item.click(function(){var $this = $(this); var index = $this.parent(".u-grade").children(".u-grade_item").index($this);           var star = $(this).parent(".u-grade").attr('data',index+1);//把點擊當前的那個元素的索引賦值給data,以可以改變原來data的數值$.setGrade($this.parent(),index); //jQuery下的靜態方法})})();

好了,到此本文的全部內容就介紹完了,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 舒兰市| 巢湖市| 庆元县| 灵丘县| 淳安县| 平阴县| 永寿县| 曲阜市| 中西区| 白水县| 旺苍县| 苍溪县| 介休市| 花莲市| 华亭县| 鹤庆县| 咸丰县| 永和县| 原阳县| 盐山县| 周口市| 巨鹿县| 英德市| 新野县| 施甸县| 罗山县| 纳雍县| 龙山县| 甘谷县| 慈利县| 苍梧县| 兴隆县| 武川县| 恩平市| 定结县| 涪陵区| 萨嘎县| 中阳县| 新津县| 伊吾县| 三河市|