jQuery在线选座(高铁版)

jQuery在线选座(高铁版)

添加时间:2021-02-12 19:52:41
站长推荐丨赞助论坛,可获取海量资源终身免费下载权限奥!
举报 举报
收藏
预览
附件 附件
  • 模板类型模板类型:Ajax
  • 模板颜色模板颜色:中级
  • 下载积分下载积分:28 米粒
  • 下载权限下载权限:

    赞助会员

jquery.seat-charts是一款适合高铁票、电影票的在线选座插件。
jQuery在线选座(高铁版)
分类:其它特效 > Ajax 难易:中级

HTML

左边座位列表,右边选票信息。

<div id="seat_area"> 
   <div class="front">
    03车厢
   </div> 
   <div id="seat_list"></div> 
  </div> 
  <!--右边选座信息-----> 
  <div class="booking-details"> 
   <h3> 选座信息:</h3> 
   <ul id="seats_selected"></ul> 
   <p>票数: <span id="tickets_num"></span></p> 
   <p>总价: ¥<span id="total_price">0</span></p> 
   <input type="button" class="btn" value="确定购买" /> 
   <div id="legend"></div> 
</div>

jQuery

我们在03号车厢内设置一等座和二等座,中间以通道隔开,So布局是这样滴:f代表一等座,e代表二等座,符号"_"代表过道,整个车厢结构图如下:

map: [//座位结构图 f 代表一等座;  e 代表 二等座;  下划线 "_" 代表过道
   'ff__ff',
   'ff__ff',
   '______',
   'eee_ee',
   'eee_ee',
   'eee_ee',
   'eee_ee',
   'eee_ee',
   'eee_ee'
],

接着我们要设置座位的相关属性:

seats: { //设置一等座和二等座属性
    f: {
        price: 125,
        classes: 'first-class',
        category: '一等座'
    },
    e: {
        price: 70,
        classes: 'economy-class',
        category: '二等座'
    }
},

接着我们用naming来定义座位图的行列信息,getLabel用来返回座位信息,如:03B表示03排B座。

naming : { //定义行列等信息 
    top : true,  //显示顶部横坐标(行)
    columns: ['A', 'B', 'C', '', 'D','F'], //定义横坐标(行)
    rows: ['01','02','','03','04','05','06','07','08','09'],  //纵坐标(列)的值
    getLabel : function (character, row, column) {  //返回座位信息
        return row+column; 
    } 
}

接着我们使用legend来定义图例,通过#legend定义座位类型。

legend : { //定义图例 
    node : $('#legend'), 
    items : [ 
        [ 'f', 'available',   '一等座' ], 
        [ 'e', 'available',   '二等座'], 
        [ 'f', 'unavailable', '已售出'] 
    ]                     
}

最后通过click座位事件,计算票数和金额总计等。

click: function () { 
    if (this.status() == 'available') {////若为可选座状态
        $('<li>'+this.data().category+'<br/>01车'+this.settings.label+'号<br/>¥'+this.data().price+'</li>') 
        .attr('id', 'cart-item-'+this.settings.id) 
        .data('seatId', this.settings.id) 
        .appendTo($cart);  //追加新的车票
        
        $counter.text(sc.find('selected').length+1); //更新票数 
        $total.text(recalculateTotal(sc)+this.data().price); //计算票价总额 
        return 'selected'; 
    } else if (this.status() == 'selected') {//若为已选中状态 
        $counter.text(sc.find('selected').length-1);   //更新票数量
        $total.text(recalculateTotal(sc)-this.data().price); //更新票价总金额
        
        $('#cart-item-'+this.settings.id).remove(); //删除已预订座位 
        return 'available'; 
    } else if (this.status() == 'unavailable') {//已售出 
        return 'unavailable'; 
    } else { 
        return this.style(); 
    } 
}

最后,我们使用get()和status()方法设置座位状态,分别为available:空位,unavailable:已售出。

sc.get(['01_A', '04_A', '07_B', '07_F']).status('unavailable');//已售出座位
相关内容推荐
资源求助发帖
查看更多发帖

*

回帖描述:

*

链接类型:

*

下载链接:

密码:
发帖规则:回帖内容为会员之间的私信,普通网友无法查看。
免责声明:回帖中提供的链接内容仅供会员之间学习参考使用,获取内容后请在法律法规范围内使用。回帖提供的内容应符合法律法规要求,不得违反法律法律的要求。
站点权责:回帖内容如违反法律法规,站点有权封停账号使用权利。对用户举报的内容,站点有责任及时删除违规内容。
热点内容推荐
标题:jQuery在线选座(高铁版)

*

描述:
平均回复时间:3-10分钟
规则介绍:悬赏寻求论坛网友分享资源,站点对分享内容的准确性,合法性,版权等没有足够的监管能力。如果您发现资源不正确,无法使用,不符合法律法律等情况,您可以直接举报资源。站长将尽快核实您的举报,并根据情况,采取封号,退换米粒等处理。

*

回帖描述:

*

链接类型:

*

阅读权限:

*

下载链接:

密码:
发帖规则:回帖内容为会员之间的私信,普通网友无法查看。
免责声明:回帖中提供的链接内容仅供会员之间学习参考使用,获取内容后请在法律法规范围内使用。回帖提供的内容应符合法律法规要求,不得违反法律法律的要求。
站点权责:回帖内容如违反法律法规,站点有权封停账号使用权利。对用户举报的内容,站点有责任及时删除违规内容。
  • 背景波浪
  • 背景波浪
  • 波浪
  • 波浪
客服
在线咨询
周一 至 周日 9:00 ~ 22:00
QQ:1326974360
微信:juyoubuluo6688
客服热线
18205485173
工作日 9:00 ~ 18:00
微信扫码咨询
客户服务
欢迎咨询服务
咨询量较多时,请耐心等待
社群

关注公众号

获取更多资讯

扫码进群(QQ)

与更多大牛交流沟通

0.083570s