天天看點

電影院插件

  之前寫了一個關于電影院訂票的小小筆記。

http://www.cnblogs.com/adouwt/p/7860337.html

  ,

   訂票系統 

 http://ticket.scampus.cn/cinema/5a49d0c6fe136c070428d7ed   
電影院插件

這裡涉及到了前端和後端的知識。我想了下,可以将前端的一些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.html

3.座位選擇和取消座位的方法判斷

電影院插件

 4.核心拼table

電影院插件

5.點選選擇座位擷取選擇的座位數組

電影院插件

解釋:這個方法會傳回一個 selectArr 到這裡已經不是剛開始從後端取來的資料了,後端資料已經渲染到頁面了,是以把這個數組清空,重新擷取目前選擇的數組資料,最後傳回,new 的時候,會抓到這個新數組。

以上就是這個函數的核心東西,寫的不好的地方,歡迎各位和我一起交流學習哈,可以在github上提issue,一起進步把!

繼續閱讀