?
本文檔使用 PHP中文網(wǎng)手冊(cè) 發(fā)布
CodeIgniter提供了一個(gè)庫(kù)來(lái)幫助您使用某些您可能想要在Javascript中使用的常用功能。請(qǐng)注意,CodeIgniter不需要運(yùn)行jQuery庫(kù),并且任何腳本庫(kù)都可以正常工作。如果您選擇使用jQuery庫(kù),則只需簡(jiǎn)單介紹一下jQuery庫(kù)。
重要
該庫(kù)已被棄用,不應(yīng)使用。它一直處于“試驗(yàn)”狀態(tài),現(xiàn)在不再支持。目前只保留向后兼容性。
初始化類
設(shè)置和配置
在你的視圖中設(shè)置這些變量
使用配置項(xiàng)目設(shè)置圖書館的路徑
jQuery類
jQuery事件
效果
hide()/ show()
切換()
動(dòng)畫()
淡入淡出()
toggleClass()
淡入淡出()
slideUp()/ slideDown()/ slideToggle()
插件
角()
tablesorter()
資本()
日歷()
要在控制器構(gòu)造函數(shù)中手動(dòng)初始化Javascript類,請(qǐng)使用該$this->load->library()
方法。目前,唯一可用的庫(kù)是jQuery,它將自動(dòng)加載,如下所示:
$this->load->library('javascript');
Javascript類也接受參數(shù):
js_library_driver(字符串)默認(rèn)值:'jquery'
自動(dòng)加載(布爾)默認(rèn)值:TRUE
您可以通過(guò)發(fā)送關(guān)聯(lián)數(shù)組來(lái)覆蓋默認(rèn)值:
$this->load->library( 'javascript', array( 'js_library_driver' => 'scripto', 'autoload' => FALSE ));
再次,目前只有'jquery'可用。不過(guò),如果您不希望jQuery庫(kù)自動(dòng)為主jQuery腳本文件包含腳本標(biāo)記,您可能希望將自動(dòng)加載設(shè)置為FALSE。如果您從CodeIgniter之外的位置加載它,或者在標(biāo)記中已經(jīng)有腳本標(biāo)記,這很有用。
一旦加載,jQuery庫(kù)對(duì)象將可用使用:
$this->javascript
作為Javascript庫(kù),您的文件必須可用于您的應(yīng)用程序。
由于Javascript是客戶端語(yǔ)言,庫(kù)必須能夠?qū)?nèi)容寫入最終輸出。這通常意味著一個(gè)觀點(diǎn)。您需要在<head>
輸出的部分中包含以下變量。
<?php echo $library_src;?><?php echo $script_head;?>
$library_src
,是實(shí)際的庫(kù)文件將被加載的地方,以及任何后續(xù)的插件腳本調(diào)用; $ script_head是渲染特定事件,函數(shù)和其他命令的地方。
Javascript庫(kù)中有一些配置項(xiàng)。這些可以在application / config.php中,在它自己的config / javascript.php文件中,或者在任何使用該set_item()
函數(shù)的控制器中設(shè)置。
要用作“ajax加載器”的圖像或進(jìn)度指示器。如果沒有人,需要進(jìn)行Ajax調(diào)用時(shí),會(huì)顯示“l(fā)oading”的簡(jiǎn)單文本消息。
$config['javascript_location'] = 'http://localhost/codeigniter/themes/js/jquery/';$config['javascript_ajax_img'] = 'images/ajax-loader.gif';
如果您將文件保存在從其下載的相同目錄中,則無(wú)需設(shè)置此配置項(xiàng)目。
要在您的控制器構(gòu)造函數(shù)中手動(dòng)初始化jQuery類,請(qǐng)使用以下$this->load->library()
方法:
$this->load->library('javascript/jquery');
您可以發(fā)送一個(gè)可選參數(shù)來(lái)確定加載庫(kù)時(shí)是否自動(dòng)包含主jQuery文件的腳本標(biāo)記。它將在默認(rèn)情況下創(chuàng)建。為防止出現(xiàn)這種情況,請(qǐng)按如下所述加載庫(kù):
$this->load->library('javascript/jquery', FALSE);
一旦加載,jQuery庫(kù)對(duì)象將可用使用:
$this->jquery
事件使用以下語(yǔ)法設(shè)置。
$this->jquery->event('element_path', code_to_run());
在上面的例子中:
“事件”是任何模糊,更改,點(diǎn)擊,dblclick,錯(cuò)誤,焦點(diǎn),懸停,keydown,鍵入,加載,mousedown,mouseup,mouseover,mouseup,調(diào)整大小,滾動(dòng)或卸載。
“element_path”是任何有效的jQuery選擇器。由于jQuery獨(dú)特的選擇器語(yǔ)法,這通常是一個(gè)元素ID或CSS選擇器。例如“#notice_area”會(huì)生效<div id="notice_area">
,而“#content a.notice”會(huì)在id為“content”的div中產(chǎn)生所有具有“notice”類別的錨。
“ code_to_run()
”是你自己寫的腳本,或者是一個(gè)動(dòng)作,比如下面jQuery庫(kù)的效果。
查詢庫(kù)支持強(qiáng)大的效果庫(kù)。在可以使用效果之前,必須加載它:
$this->jquery->effect([optional path] plugin name); // for example $this->jquery->effect('bounce');
每個(gè)功能都會(huì)影響頁(yè)面上項(xiàng)目的可見性。hide()會(huì)將項(xiàng)目設(shè)置為不可見,show()會(huì)顯示它。
$this->jquery->hide(target, optional speed, optional extra information);$this->jquery->show(target, optional speed, optional extra information);
“目標(biāo)”將是任何有效的jQuery選擇器或選擇器。
“速度”是可選的,并且設(shè)置為慢,正常,快或者毫秒數(shù)。
“額外信息”是可選的,并且可以包括回調(diào)或其他附加信息。
toggle()會(huì)將項(xiàng)目的可見性更改為其當(dāng)前狀態(tài)的相反,隱藏可見元素并顯示隱藏元素。
$this->jquery->toggle(target);
“目標(biāo)”將是任何有效的jQuery選擇器或選擇器。
$this->jquery->animate(target, parameters, optional speed, optional extra information);
“目標(biāo)”將是任何有效的jQuery選擇器或選擇器。
jQuery中的“參數(shù)”通常會(huì)包含一系列您希望更改的CSS屬性。
“速度”是可選的,并且設(shè)置為慢,正常,快或者毫秒數(shù)。
“額外信息”是可選的,并且可以包括回調(diào)或其他附加信息。
下面是一個(gè)animate()的例子,它調(diào)用id為“note”的div,并通過(guò)使用jQuery庫(kù)的click()事件進(jìn)行點(diǎn)擊觸發(fā)。
$params = array('height' => 80,'width' => '50%','marginLeft' => 125);$this->jquery->click('#trigger', $this->jquery->animate('#note', $params, 'normal'));
$this->jquery->fadeIn(target, optional speed, optional extra information);$this->jquery->fadeOut(target, optional speed, optional extra information);
“目標(biāo)”將是任何有效的jQuery選擇器或選擇器。
“速度”是可選的,并且設(shè)置為慢,正常,快或者毫秒數(shù)。
“額外信息”是可選的,并且可以包括回調(diào)或其他附加信息。
這個(gè)函數(shù)將添加或刪除一個(gè)CSS類到它的目標(biāo)。
$this->jquery->toggleClass(target, class)
“目標(biāo)”將是任何有效的jQuery選擇器或選擇器。
“class”是任何CSS類名。請(qǐng)注意,此類必須在已加載的CSS中定義并可用。
這些效果會(huì)導(dǎo)致元素隨著時(shí)間消失或重新出現(xiàn)。
$this->jquery->fadeIn(target, optional speed, optional extra information);$this->jquery->fadeOut(target, optional speed, optional extra information);
“目標(biāo)”將是任何有效的jQuery選擇器或選擇器。
“速度”是可選的,并且設(shè)置為慢,正常,快或者毫秒數(shù)。
“額外信息”是可選的,并且可以包括回調(diào)或其他附加信息。
這些效果會(huì)導(dǎo)致元素滑動(dòng)。
$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);
“目標(biāo)”將是任何有效的jQuery選擇器或選擇器。
“速度”是可選的,并且設(shè)置為慢,正常,快或者毫秒數(shù)。
“額外信息”是可選的,并且可以包括回調(diào)或其他附加信息。
一些選擇jQuery插件可以使用這個(gè)庫(kù)。
$this->jquery->corner(target, corner_style);
“目標(biāo)”將是任何有效的jQuery選擇器或選擇器。
“corner_style”是可選的,可以設(shè)置為任何有效的樣式,例如圓形,尖銳,斜角,咬,狗等。可以通過(guò)按照樣式使用空格并使用“tl”(左上)來(lái)設(shè)置單獨(dú)的角落, “tr”(右上),“bl”(左下)或“br”(右下)。
$this->jquery->corner("#note", "cool tl br");
說(shuō)明即將到來(lái)
說(shuō)明即將到來(lái)
說(shuō)明即將到來(lái)