之前寫了一個關于電影院訂票的小小筆記。
http://www.cnblogs.com/adouwt/p/7860337.html,
訂票系統
http://ticket.scampus.cn/cinema/5a49d0c6fe136c070428d7ed![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIn5GcuUWYyY2Y5UTNwkTY1EjNxYmM1QDO5MWNjFDM1kzYiFDNfdWbp9CXt92Yu4GZjlGbh5SZslmZxl3Lc9CX6MHc0RHaiojIsJye.png)
這裡涉及到了前端和後端的知識。我想了下,可以将前端的一些dom操作,封裝一下。于是就花了一些功夫做了下封裝,當然,這裡假裝我寫的很好的樣子,來解釋下我的code。smile to cry...
github 位址:
https://github.com/adouwt/cinema代碼不多,加拼接的css 也就200來行,當然這些js 對于前端的同學來說,很簡單的,花花功夫都能寫出來。還是假裝我寫的好好的樣子。。。
分析一下要實作的内容:
電影院座位的排布大家都知道,多少排多少列,還有一些邊邊腳腳的位置是沒有座位的;座位選完後是不能再提供給使用者點選的。基于這基本需求來做一下代碼分析。
分析:
要提供足夠的靈活性,就不能把座位的排列數定死,是以得有提供行數和列數的接口參數;由于電影院的實際空間布局不一樣,是以哪些地方是沒有座位的也需要靈活的;可以先按照行列分布好,然後按照空座位的情況單獨處理;座位已經訂購過的座位資料也要單獨提出來處理;
定義:
調用:
第一個和第二個參數必須是數字,分别對應的是 電影院座位的行和列, 第三個參數是 座位為空的數組,第三個 dataArr 是一個來自後端接口資料的一個數組,最後一個是 dom 選擇器,目前是隻支援傳 class 選擇器。
調用的方式很傳統,new 一個對象就好。
然後做一些 ajax 的送出操作。
分解函數
1.js 拼 css, 為了将這個函數隻做一個檔案,css 部分就不單獨寫樣式link 了,這裡的css 是基本的樣式,使用的時候,可以自行添加css。
這裡的style 是用了 es6 的字元串拼接方法,減少了 用+ 拼接的麻煩,css 該怎麼寫就這麼寫,隻需要将 ` `,包起來就好。 現在好多浏覽器都支援es6 的文法了,是以這裡我就不用 babel 轉換成es5了。
2。參數異常處理
這裡有一個關于資料類型的判斷,js 好多判斷方法,但是我覺得還是這樣的方法判斷 直接有效, 這個方法解釋,可以到我之前寫的
http://www.cnblogs.com/adouwt/p/8108639.html3.座位選擇和取消座位的方法判斷
4.核心拼table
5.點選選擇座位擷取選擇的座位數組
解釋:這個方法會傳回一個 selectArr 到這裡已經不是剛開始從後端取來的資料了,後端資料已經渲染到頁面了,是以把這個數組清空,重新擷取目前選擇的數組資料,最後傳回,new 的時候,會抓到這個新數組。
以上就是這個函數的核心東西,寫的不好的地方,歡迎各位和我一起交流學習哈,可以在github上提issue,一起進步把!