最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

關(guān)于數(shù)據(jù)與后端進(jìn)行交流匹配(點(diǎn)亮星星)

 更新時間:2016年08月03日 15:39:49   作者:hypocrite_c  
這篇文章主要介紹了關(guān)于數(shù)據(jù)與后端進(jìn)行交流匹配(點(diǎn)亮星星) 的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下

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

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

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

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

a,先上圖:

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

是的,沒錯,起始星星的點(diǎn)亮顆數(shù)就是因為data

c: 現(xiàn)在可以來談?wù)撘幌逻@個data了,可是這個data是個什么東西呢?

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

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

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

前端賦值-----》后端取值--》后端儲存數(shù)據(jù)--》后端根據(jù)儲存的數(shù)據(jù)反饋給前端--》前端根據(jù)后端反饋的數(shù)據(jù)在頁面中展現(xiàn)相應(yīng)的效果

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

$('.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當(dāng)前的元素, i當(dāng)前元素的索引
if(i<star){ 
/*alert(i);*/ 
/*alert(ele);*/ 
$(ele).addClass('light'); 
}
});
});

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

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

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

4.1:至此我們已經(jīng)完成了后端賦值,前端表現(xiàn)效果這一塊了。此時還差兩塊,

一塊是用戶點(diǎn)擊產(chǎn)生效果這一塊,另一塊是把用戶點(diǎn)擊當(dāng)前星星的那個數(shù)值賦值在data上(讓后端取值保存,重新賦值展現(xiàn))

4.2:下面來做用戶點(diǎn)擊表現(xiàn)效果這一塊

$(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); /*定義一個變量保存當(dāng)前的$item對象*/
  var index = $this.parent(".u-grade").children(".u-grade_item").index($this); 
  //通過index()返回指定元素的index位置,也就是自己所認(rèn)為的當(dāng)前元素的索引值
  /*alert(index);*/
  $.setGrade($this.parent(),index); //jQuery下的靜態(tài)方法
  })
})();
}); 

a:代碼實現(xiàn)就不一一說了,可以看注釋,就這樣,就完成用戶點(diǎn)擊產(chǎn)生效果這一塊,下面只差最后一塊了,把用戶點(diǎn)擊的這個星星的數(shù)值賦值在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);
//把點(diǎn)擊當(dāng)前的那個元素的索引賦值給data,以可以改變原來data的數(shù)值
$.setGrade($this.parent(),index); //jQuery下的靜態(tài)方法
})
})();

好了,到此本文的全部內(nèi)容就介紹完了,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

最新評論

于都县| 济南市| 南溪县| 襄汾县| 浮梁县| 炉霍县| 平塘县| 东丰县| 东乌珠穆沁旗| 泌阳县| 象州县| 盐亭县| 大渡口区| 马关县| 荣昌县| 云梦县| 邵武市| 新乡县| 柳河县| 康乐县| 桂东县| 登封市| 隆尧县| 黄陵县| 汽车| 玉门市| 洞口县| 昔阳县| 东方市| 嘉荫县| 申扎县| 景德镇市| 塔河县| 独山县| 彰武县| 岑溪市| 收藏| 寻乌县| 石泉县| 兴和县| 宁陵县|