# Javascript 類
CodeIgniter 提供一個類庫和一些共用的方法來處理 Javascript 。要注意的是, CodeIgniter 并不是只能用于 jQuery ,其他腳本庫也可以。JQuery 僅僅是 作為一個方便的工具,如果你選擇使用它的話。
重要
這個類庫已經廢棄,不要使用它。它將永遠處于 "實驗" 版本, 而且現在也已經不提供支持了。保留它只是為了向前兼容。
* [使用 Javascript 類](http://codeigniter.org.cn/user_guide/libraries/javascript.html#id1)
* [初始化類](http://codeigniter.org.cn/user_guide/libraries/javascript.html#id2)
* [初始化配置](http://codeigniter.org.cn/user_guide/libraries/javascript.html#id3)
* [在視圖文件中設置變量](http://codeigniter.org.cn/user_guide/libraries/javascript.html#id4)
* [設置庫路徑](http://codeigniter.org.cn/user_guide/libraries/javascript.html#id5)
* [jQuery 類](http://codeigniter.org.cn/user_guide/libraries/javascript.html#jquery)
* [jQuery 事件](http://codeigniter.org.cn/user_guide/libraries/javascript.html#id6)
* [特效](http://codeigniter.org.cn/user_guide/libraries/javascript.html#id8)
* [hide() / show()](http://codeigniter.org.cn/user_guide/libraries/javascript.html#hide-show)
* [toggle()](http://codeigniter.org.cn/user_guide/libraries/javascript.html#toggle)
* [animate()](http://codeigniter.org.cn/user_guide/libraries/javascript.html#animate)
* [toggleClass()](http://codeigniter.org.cn/user_guide/libraries/javascript.html#toggleclass)
* [fadeIn() / fadeOut()](http://codeigniter.org.cn/user_guide/libraries/javascript.html#fadein-fadeout)
* [slideUp() / slideDown() / slideToggle()](http://codeigniter.org.cn/user_guide/libraries/javascript.html#slideup-slidedown-slidetoggle)
* [插件](http://codeigniter.org.cn/user_guide/libraries/javascript.html#id10)
* [corner()](http://codeigniter.org.cn/user_guide/libraries/javascript.html#corner)
* [tablesorter()](http://codeigniter.org.cn/user_guide/libraries/javascript.html#tablesorter)
* [modal()](http://codeigniter.org.cn/user_guide/libraries/javascript.html#modal)
* [calendar()](http://codeigniter.org.cn/user_guide/libraries/javascript.html#calendar)
## [使用 Javascript 類](http://codeigniter.org.cn/user_guide/libraries/javascript.html#id11)
### [初始化類](http://codeigniter.org.cn/user_guide/libraries/javascript.html#id12)
要初始化 Javascript 類,你可以在控制器的構造函數中使用?$this->load->library()?函數。目前,唯一可用的庫是 jQuery ,可以使用下面的方法加載:
~~~
$this->load->library('javascript');
~~~
Javascript 類也可以接受參數:
* js_library_driver (string)?default: 'jquery'
* autoload (bool)?default: TRUE
你可以通過一個關聯數組覆蓋默認的參數:
~~~
$this->load->library(
'javascript',
array(
'js_library_driver' => 'scripto',
'autoload' => FALSE
)
);
~~~
再次說明,目前只有 jQuery 是可用的,如果你不想讓 jQuery 腳本文件自動的包含在 script 標簽中,你可以設置 autoload 參數為 FALSE 。這在當你在 CodeIgniter 之外 加載它時,或者 script 標簽已經有了的時候很有用。
一旦加載完成,jQuery 類對象就可以通過下面的方式使用:
~~~
$this->javascript
~~~
### [初始化配置](http://codeigniter.org.cn/user_guide/libraries/javascript.html#id13)
#### [在視圖文件中設置變量](http://codeigniter.org.cn/user_guide/libraries/javascript.html#id14)
作為一個 Javascript 庫,源文件必須能被應用程序訪問到。
由于 Javascript 是一種客戶端語言,庫必須能寫入內容到最終的輸出中去, 這通常就是視圖。你需要在輸出的??中包含下面的變量。
~~~
<?php echo $library_src;?>
<?php echo $script_head;?>
~~~
$library_src?是要載入的庫文件的路徑,以及之后所有插件腳本的路徑;?$script_head?是需要顯示的具體的一些事件、函數和其他的命令。
#### [設置庫路徑](http://codeigniter.org.cn/user_guide/libraries/javascript.html#id15)
在 Javascript 類庫中有一些配置項,它們可以在?application/config.php?文件中 設置,也可以在它們自己的配置文件?config/javascript.php?中設置,還可以通過 在控制器中使用?set_item()?方法來設置。
例如,有一個 "加載中" 的圖片,或者進度條指示,如果沒有它的話,當調用 Ajax 請求時, 將會顯示 "加載中" 這樣的文本。
~~~
$config['javascript_location'] = 'http://localhost/codeigniter/themes/js/jquery/';
$config['javascript_ajax_img'] = 'images/ajax-loader.gif';
~~~
如果你把文件留在與圖片下載路徑相同的目錄里,那么你不需要設置這個配置項。
### [jQuery 類](http://codeigniter.org.cn/user_guide/libraries/javascript.html#id16)
要在你的控制器構造函數中手工初始化 jQuery 類,使用?$this->load->library()?方法:
~~~
$this->load->library('javascript/jquery');
~~~
你可以提供一個可選的參數來決定加載該庫時是否將其自動包含到 script 標簽中。 默認情況下會包含,如果不需要,可以像下面這樣來加載:
~~~
$this->load->library('javascript/jquery', FALSE);
~~~
加載完成后,jQuery 類對象可以使用下面的代碼來訪問:
~~~
$this->jquery
~~~
### [jQuery 事件](http://codeigniter.org.cn/user_guide/libraries/javascript.html#id17)
使用下面的語法來設置事件。
~~~
$this->jquery->event('element_path', code_to_run());
~~~
在上面的例子中:
* "event" 可以是 blur、change、click、dblclick、error、focus、hover、 keydown、keyup、load、mousedown、mouseup、mouseover、mouseup、resize、 scroll 或者 unload 中的任何一個事件。
* "element_path" 可以是任何的?[jQuery 選擇器](http://api.jquery.com/category/selectors/)?。 使用 jQuery 獨特的選擇器語法,通常是一個元素 ID 或 CSS 選擇器。例如,"#notice_area" 會影響到??id="notice_area">?,"#content a.notice" 會影響到 ID 為 "content" 的元素下的所有 class 為 "notice" 的鏈接。
* "code_to_run()" 為你自己寫的腳本,或者是一個 jQuery 動作,譬如下面所介紹的特效。
### [特效](http://codeigniter.org.cn/user_guide/libraries/javascript.html#id18)
jQuery 庫支持很多強大的?[特效](http://api.jquery.com/category/effects/)?,在使用特效之前, 必須使用下面的方法加載:
~~~
$this->jquery->effect([optional path] plugin name); // for example $this->jquery->effect('bounce');
~~~
#### [hide() / show()](http://codeigniter.org.cn/user_guide/libraries/javascript.html#id19)
這兩個函數會影響你的頁面上元素的可見性,hide() 函數用于將元素隱藏,show() 則相反。
~~~
$this->jquery->hide(target, optional speed, optional extra information);
$this->jquery->show(target, optional speed, optional extra information);
~~~
* "target" 是任何有效的 jQuery 選擇器。
* "speed" 可選,可以設置為 slow、normal、fast 或你自己設置的毫秒數。
* "extra information" 可選,可以包含一個回調,或者其他的附加信息。
#### [toggle()](http://codeigniter.org.cn/user_guide/libraries/javascript.html#id20)
toggle() 用于將元素的可見性改成和當前的相反,將可見的元素隱藏,將隱藏的元素可見。
~~~
$this->jquery->toggle(target);
~~~
* "target" 是任何有效的 jQuery 選擇器。
#### [animate()](http://codeigniter.org.cn/user_guide/libraries/javascript.html#id21)
~~~
$this->jquery->animate(target, parameters, optional speed, optional extra information);
~~~
* "target" 是任何有效的 jQuery 選擇器。
* "parameters" 通常是你想改變元素的一些 CSS 屬性。
* "speed" 可選,可以設置為 slow、normal、fast 或你自己設置的毫秒數。
* "extra information" 可選,可以包含一個回調,或者其他的附加信息。
更完整的說明,參見?[http://api.jquery.com/animate/](http://api.jquery.com/animate/)
下面是個在 ID 為 "note" 的一個 div 上使用 animate() 的例子,它使用了 jQuery 庫的 click 事件, 通過 click 事件觸發。
~~~
$params = array(
'height' => 80,
'width' => '50%',
'marginLeft' => 125
);
$this->jquery->click('#trigger', $this->jquery->animate('#note', $params, 'normal'));
~~~
#### [toggleClass()](http://codeigniter.org.cn/user_guide/libraries/javascript.html#id22)
該函數用于往目標元素添加或移除一個 CSS 類。
~~~
$this->jquery->toggleClass(target, class)
~~~
* "target" 是任何有效的 jQuery 選擇器。
* "class" 是任何 CSS 類名,注意這個類必須是在某個已加載的 CSS 文件中定義的。
#### [fadeIn() / fadeOut()](http://codeigniter.org.cn/user_guide/libraries/javascript.html#id23)
這兩個特效會使某個元素漸變的隱藏和顯示。
~~~
$this->jquery->fadeIn(target, optional speed, optional extra information);
$this->jquery->fadeOut(target, optional speed, optional extra information);
~~~
* "target" 是任何有效的 jQuery 選擇器。
* "speed" 可選,可以設置為 slow、normal、fast 或你自己設置的毫秒數。
* "extra information" 可選,可以包含一個回調,或者其他的附加信息。
#### [slideUp() / slideDown() / slideToggle()](http://codeigniter.org.cn/user_guide/libraries/javascript.html#id24)
這些特效可以讓元素滑動。
~~~
$this->jquery->slideUp(target, optional speed, optional extra information);
$this->jquery->slideDown(target, optional speed, optional extra information);
$this->jquery->slideToggle(target, optional speed, optional extra information);
~~~
* "target" 是任何有效的 jQuery 選擇器。
* "speed" 可選,可以設置為 slow、normal、fast 或你自己設置的毫秒數。
* "extra information" 可選,可以設置為 slow、normal、fast 或你自己設置的毫秒數。
### [插件](http://codeigniter.org.cn/user_guide/libraries/javascript.html#id25)
使用這個庫時還有幾個 jQuery 插件可用。
#### [corner()](http://codeigniter.org.cn/user_guide/libraries/javascript.html#id26)
用于在頁面的某個元素四周添加不同樣式的邊角。更多詳細信息,參考?[http://malsup.com/jquery/corner/](http://malsup.com/jquery/corner/)
~~~
$this->jquery->corner(target, corner_style);
~~~
* "target" 是任何有效的 jQuery 選擇器。
* "corner_style" 可選,可以設置為任何有效的樣式,譬如: round、sharp、bevel、bite、dog 等。如果只想設置某個邊角的樣式, 可以在樣式后添加一個空格,然后使用 "tl" (左上),"tr" (右上), "bl" (左下),和 "br" (右下)。
~~~
$this->jquery->corner("#note", "cool tl br");
~~~
#### [tablesorter()](http://codeigniter.org.cn/user_guide/libraries/javascript.html#id27)
待添加
#### [modal()](http://codeigniter.org.cn/user_guide/libraries/javascript.html#id28)
待添加
#### [calendar()](http://codeigniter.org.cn/user_guide/libraries/javascript.html#id29)
待添加
- 歡迎使用 CodeIgniter
- 安裝說明
- 下載 CodeIgniter
- 安裝說明
- 從老版本升級
- 疑難解答
- CodeIgniter 概覽
- CodeIgniter 將從這里開始
- CodeIgniter 是什么?
- 支持特性
- 應用程序流程圖
- 模型-視圖-控制器
- 設計與架構目標
- 教程 - 內容提要
- 加載靜態內容
- 讀取新聞條目
- 創建新聞條目
- 結束語
- 常規主題
- CodeIgniter URL
- 控制器
- 保留名稱
- 視圖
- 模型
- 輔助函數
- 使用 CodeIgniter 類庫
- 創建類庫
- 使用 CodeIgniter 驅動器
- 創建驅動器
- 創建核心系統類
- 創建附屬類
- 鉤子 - 擴展框架核心
- 自動加載資源
- 公共函數
- 兼容性函數
- URI 路由
- 錯誤處理
- 網頁緩存
- 程序分析
- 以 CLI 方式運行
- 管理你的應用程序
- 處理多環境
- 在視圖文件中使用 PHP 替代語法
- 安全
- PHP 開發規范
- 類庫參考
- 基準測試類
- 緩存驅動器
- 日歷類
- 購物車類
- 配置類
- Email 類
- 加密類
- 加密類(新版)
- 文件上傳類
- 表單驗證類
- FTP 類
- 圖像處理類
- 輸入類
- Javascript 類
- 語言類
- 加載器類
- 遷移類
- 輸出類
- 分頁類
- 模板解析類
- 安全類
- Session 類
- HTML 表格類
- 引用通告類
- 排版類
- 單元測試類
- URI 類
- 用戶代理類
- XML-RPC 與 XML-RPC 服務器類
- Zip 編碼類
- 數據庫參考
- 數據庫快速入門: 示例代碼
- 數據庫配置
- 連接你的數據庫
- 查詢
- 生成查詢結果
- 查詢輔助函數
- 查詢構造器類
- 事務
- 數據庫元數據
- 自定義函數調用
- 數據庫緩存類
- 數據庫工廠類
- 數據庫工具類
- 數據庫驅動器參考
- 輔助函數參考
- 數組輔助函數
- 驗證碼輔助函數
- Cookie 輔助函數
- 日期輔助函數
- 目錄輔助函數
- 下載輔助函數
- 郵件輔助函數
- 文件輔助函數
- 表單輔助函數
- HTML 輔助函數
- 語言輔助函數
- Inflector 輔助函數
- 數字輔助函數
- 路徑輔助函數
- 安全輔助函數
- 表情輔助函數
- 字符串輔助函數
- 文本輔助函數
- 排版輔助函數
- URL 輔助函數
- XML 輔助函數
- 向 CodeIgniter 貢獻你的力量