TimeSheet:一個用於時間規劃的jQuery插件

設計思想
html

基於面向對象的設計思想。git

源代碼分3個部分:github

  1. 單元格類--CSheetCell數組

  2. 表格類--CSheet函數

  3. 插件主體spa


單元格類--CSheetCell.net

私有成員:
插件

state -- 單元格的狀態,只能取值 0 或 1,默認 0;設計

toggleCallback(state) -- 改變單元格狀態時的回調函數,默認 false;code

settingCallback() -- 設置單元格狀態時的回調函數,默認 false;

公有成員:

toggle() -- 改變單元格的狀態;

set(state) -- 設置單元格狀態爲指定值;

get() -- 獲取單元格狀態;


表格類--CSheet

私有成員:

dimensions -- 表格的維度,二元數組,[行數,列數],默認 undefined;

sheetData -- 表格的數據,二維數組,默認 undefined

toggleCallback() -- 改變指定區域狀態時的回調函數,默認 false;

settingCallback() -- 設置指定區域狀態時的回調函數,默認 false;

cells -- 表格所持有的 CSheetCell 實例,二維數組,與 sheetData 元素一 一對應;

initCells() -- 使用 sheetData 初始化 cells;

areaOperate(area, opt) -- 選定一個區域,對其執行 toggle 或 set 操做;

公有成員:

toggle(area) -- 改變指定區域內單元格的狀態;

set(state, area) -- 設置指定區域內單元格狀態爲指定值;

getCellState(cellIndex) -- 獲取指定單元格狀態;

getRowStates(rowIndex) -- 獲取指定行全部單元格狀態;

getSheetStates() -- 獲取整個表格全部單元格狀態;


插件主體

CSheetCell 與 CSheet 封裝了一些數據和方法以方便插件的實現。在使用場合,CSheetCell 與 CSheet 對用戶是不可見的,API 最終由插件主體提供。

open API:

getCellState(cellIndex) -- 獲取單元格狀態,封裝了 CSheet :: getCellState;

getRowStates(rowIndex) -- 獲取指定行全部單元格狀態,封裝了 CSheet :: getRowStates;

getSheetStates() -- 獲取整個表格全部單元格狀態封裝了 CSheet :: getSheetStates

setRemark(row, text) -- 設置指定行的說明文字;

clean() -- 將表格重置爲未設置狀態;

disable() -- 禁止操做表格;

enable() -- 容許操做表格;

isFull() -- 判斷表格是否全部單元格狀態都是1;

getDefaultRemark() -- 獲取行註釋的默認值


開源項目

項目地址:https://github.com/lbbc1117/TimeSheet

也能夠在這裏下載源碼: http://www.oschina.net/code/snippet_1047422_50906

演示視頻:http://v.youku.com/v_show/id_XMTMzNzcxMzI0NA==.html

選擇超清模式看的更清楚。

源碼中提供了樣例,展現了 TimeSheet 全部主要功能:

相關文章
相關標籤/搜索