Home >Web Front-end >JS Tutorial >Detailed explanation of the use of jQuery plug-in seat-charts (with code)
This time I bring you a detailed explanation of the use of the jQuery plug-in seat-charts (with code). What are the precautions for the detailed explanation of the use of the jQuery plug-in seat-charts. The following is a practical case, let's take a look.
This is an online seat selection plug-in seat-charts source code implemented based on JQuery. It is a jquery.seat-charts plug-in suitable for seat selection for air tickets, movie tickets, and bus tickets. Click on the seat on the left to instantly display the seat information on the right, and there is a function to calculate the total.
Features: Supports custom seat types and prices, supports custom styles, supports setting non-selectable seats, and also supports keyboard control for seat selection.
Operation renderings:
Tips: If the browser cannot run normally, you can try switching the browsing mode.
The jQuery online seat selection plug-in seat-charts special effects code shared with everyone is as follows
<!doctype html> <html> <head> <title>jQuery在线选座位插件seat-charts</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <link rel="stylesheet" type="text/css" href="css/jquery.seat-charts.css"> <link rel="stylesheet" type="text/css" href="css/style.css"> </head> <body> <p class="wrapper"> <p class="container"> <p id="seat-map"> <p class="front-indicator">机头</p> </p> <p class="booking-details"> <h3>已选中的座位 (<span id="counter">0</span>):</h3> <ul id="selected-seats"> </ul> <p>总价: <b>$<span id="total">0</span></b></p> <p><button class="checkout-button">结算</button></p> <p id="legend"></p> </p> </p> </p> <script src="js/jquery-1.11.0.min.js"></script> <script src="js/jquery.seat-charts.min.js"></script> <script> var firstSeatLabel = 1; $(document).ready(function() { var $cart = $('#selected-seats'), $counter = $('#counter'), $total = $('#total'), sc = $('#seat-map').seatCharts({ map: [ 'ff_ff', 'ff_ff', 'ee_ee', 'ee_ee', 'ee_', 'ee_ee', 'ee_ee', 'ee_ee', 'ee_ee', 'eeeee', ], seats: { f: { price : 100, classes : 'first-class', //your custom CSS class category: '头等舱' }, e: { price : 40, classes : 'economy-class', //your custom CSS class category: '经济舱' } }, naming : { top : false, getLabel : function (character, row, column) { return firstSeatLabel++; }, }, legend : { node : $('#legend'), items : [ [ 'f', 'available', '头等舱' ], [ 'e', 'available', '经济舱'], [ 'f', 'unavailable', '已预定'] ] }, click: function () { if (this.status() == 'available') { $('<li>'+this.data().category+this.settings.label+'号座位'+':<br/>价格:<b>$'+this.data().price+'</b> <a href="#" class="cancel-cart-item">[删除]</a></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') { //update the counter $counter.text(sc.find('selected').length-1); //and total $total.text(recalculateTotal(sc)-this.data().price); //remove the item from our cart $('#cart-item-'+this.settings.id).remove(); //seat has been vacated return 'available'; } else if (this.status() == 'unavailable') { //seat has been already booked return 'unavailable'; } else { return this.style(); } } }); //this will handle "[cancel]" link clicks $('#selected-seats').on('click', '.cancel-cart-item', function () { //let's just trigger Click event on the appropriate seat, so we don't have to repeat the logic here sc.get($(this).parents('li:first').data('seatId')).click(); }); //let's pretend some seats have already been booked sc.get(['1_2', '4_1', '7_1', '7_2']).status('unavailable'); }); function recalculateTotal(sc) { var total = 0; //basically find every selected seat and sum its price sc.find('selected').each(function () { total += this.data().price; }); return total; } </script> <p align="center" style="clear:both;font-size:12px;color:#666;font:normal 14px/24px 'MicroSoft YaHei';"> <p>适用浏览器:IE8、360、FireFox、Chrome、Safari、Opera、傲游、搜狗、世界之窗. </p> </p> </body> </html>
I believe you have mastered the method after reading the case in this article. For more exciting information, please pay attention to other related articles on the PHP Chinese website!
Recommended reading:
jQuery implements a collection of special effects for text buttons in forms
detailed explanation of the steps for jQuery to implement a table with checkboxes
The above is the detailed content of Detailed explanation of the use of jQuery plug-in seat-charts (with code). For more information, please follow other related articles on the PHP Chinese website!