码迷,mamicode.com
首页 > 其他好文 > 详细

[AWDwR4] chapter 11 Play time 2th: use blind_up effect

时间:2017-04-16 23:05:16      阅读:234      评论:0      收藏:0      [点我收藏+]

标签:das   com   use   ada   上网   add   提示   href   hid   

chapter 11 Play time

Play time 2:
    使用Script.aculo.us JavaScript库中的blind_up效果代替隐藏cart这个div的过程。
    上网搜了一下,jquery中有blind这个效果,所以就用jquery中的hide("blind"),而不使用Script.aculo.us JavaScript库
    app/views/carts/destroy.js.erb这个文件可以有好几种写法,对照着可以加深理解:
    
    简单粗暴的方案A:      

 $(‘#cart‘).hide("blind", 1000);

    这个方案在删除Cart时可以正常隐藏cart这个div,但是后续操作会有问题,你能看出来吗?
    
    
    使用hide会把当前的cart隐藏,下次Add Cart时,客户端执行 app/views/line_items/create.js.erb 产生的js代码时,由于不满足$(‘#cart tr‘).length == 1这个条件,所以 {$(‘#cart‘).show(‘blind‘, 1000);} 这句不会执行。

    修改后的方案B: 

 $(‘#cart‘).html("<%= j render @cart %>");
 $(‘#cart‘).hide("blind", 1000);

    由于在调用app/views/carts/destroy.js.erb这个模板时,cart中的line_items已经被清空了,所以render(@cart)后,cart这个div中只剩了total_line这个tr,下次Add Cart时,就不会出问题了。此时再调用 hide("blind")在垂直方向(默认)上隐藏cart这个div。
          
    官网的提示是使用jquery的not来选择除了 .total_line 的所有tr,并删除之,这样就不用 render @cart 了。下次Add To cart时,就可以正常显示cart这个div了。
        C,不需要render @cart的方案:       

$(‘#cart tr‘).not(".total_line").remove();  
$(‘#cart‘).hide("blind", 1000);  

[AWDwR4] chapter 11 Play time 2th: use blind_up effect

标签:das   com   use   ada   上网   add   提示   href   hid   

原文地址:http://www.cnblogs.com/chenshizhutou/p/6720018.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!