Класс Javascript
CodeIgniter предоставляет библиотеку, которая поможет вам с некоторыми общими функциями, которые вы можете захотеть использовать с Javascript. Обратите внимание, что CodeIgniter не требует библиотеки jQuery для работы, и любая библиотека скриптов будет работать одинаково хорошо. Библиотека jQuery представлена просто для удобства, если вы решите её использовать.
Важно
Эта библиотека устарела и не должна использоваться. Она всегда имела статус «экспериментальной» и теперь больше не поддерживается. В настоящее время она поддерживается только для обратной совместимости.
Использование класса Javascript
Инициализация класса
Чтобы вручную инициализировать класс Javascript в вашем контроллере-конструкторе, используйте метод $this->load->library(). В настоящее время доступна только библиотека jQuery, которая будет автоматически загружена следующим образом:
$this->load->library('javascript');
Класс Javascript также принимает параметры:
- js_library_driver (строка) по умолчанию: ‘jquery’
- autoload (булево) по умолчанию: TRUE
Вы можете переопределить значения по умолчанию, передав ассоциативный массив:
$this->load->library(
'javascript',
array(
'js_library_driver' => 'scripto',
'autoload' => FALSE
)
);
Опять же, в настоящее время доступен только ‘jquery’. Возможно, вам захочется установить autoload в FALSE, если вы не хотите, чтобы библиотека jQuery автоматически включала тег скрипта для основного файла скрипта jQuery. Это полезно, если вы загружаете его из места вне CodeIgniter или у вас уже есть тег скрипта в вашем разметке.
После загрузки, объект библиотеки jQuery будет доступен с помощью:
$this->javascriptНастройка и конфигурация
Установите эти переменные в вашем представлении
Как библиотека Javascript, ваши файлы должны быть доступны вашему приложению.
Поскольку Javascript - язык клиентской стороны, библиотека должна иметь возможность записывать контент в ваш окончательный вывод. Обычно это означает представление. Вам нужно будет включить следующие переменные в секции <head> вашего вывода.
<?php echo $library_src;?> <?php echo $script_head;?>
$library_src, это место, где будет загружен фактический файл библиотеки, а также любые последующие вызовы скрипта плагина; $script_head - это место, где будут отображены конкретные события, функции и другие команды.
Установите путь к библиотекам с параметрами конфигурации
Существует несколько параметров конфигурации в библиотеке Javascript. Их можно установить в application/config.php, в собственном файле config/javascript.php или в любом контроллере, используя функцию set_item().
Изображение, которое будет использоваться в качестве «загрузчика ajax» или индикатора прогресса. Без него при выполнении вызовов Ajax будет отображаться просто текстовое сообщение «загрузка».
$config['javascript_location'] = 'http://localhost/codeigniter/themes/js/jquery/'; $config['javascript_ajax_img'] = 'images/ajax-loader.gif';
Если вы сохраняете файлы в тех же директориях, что и при их скачивании, то не нужно устанавливать эти параметры конфигурации.
Класс jQuery
Чтобы вручную инициализировать класс jQuery в вашем контроллере-конструкторе, используйте метод $this->load->library().
$this->load->library('javascript/jquery');
Вы можете передать необязательный параметр, чтобы определить, будет ли тег скрипта для основного файла jQuery автоматически включён при загрузке библиотеки. По умолчанию он создаётся. Чтобы этого избежать, загрузите библиотеку следующим образом:
$this->load->library('javascript/jquery', FALSE);
После загрузки, объект библиотеки jQuery будет доступен с помощью:
$this->jqueryСобытия jQuery
События устанавливаются с помощью следующего синтаксиса.
$this->jquery->event('element_path', code_to_run());
В приведённом примере:
- «событие» - любое из blur, change, click, dblclick, error, focus, hover, keydown, keyup, load, mousedown, mouseup, mouseover, mouseup, resize, scroll или unload.
- «путь_к_элементу» - любой допустимый селектор jQuery. Из-за уникального синтаксиса селектора jQuery, это обычно идентификатор элемента или CSS-селектор. Например, «#notice_area» повлияет на
<div id="notice_area">, а «#content a.notice» повлияет на все якоря с классом «notice» в div с id «content». - «
code_to_run()» - это скрипт, который вы пишете сами, или действие, такое как эффект из библиотеки jQuery ниже.
Эффекты
Библиотека jQuery поддерживает мощный набор эффектов. Прежде чем использовать эффект, его необходимо загрузить:
$this->jquery->effect([optional path] plugin name); // for example $this->jquery->effect('bounce');
hide() / show()
Каждая из этих функций повлияет на видимость элемента на вашей странице. hide() сделает элемент невидимым, show() - отобразит его.
$this->jquery->hide(target, optional speed, optional extra information); $this->jquery->show(target, optional speed, optional extra information);
- «цель» - любой допустимый селектор jQuery или селекторы.
- «скорость» - необязательный параметр, может быть slow, normal, fast или, альтернативно, количество миллисекунд.
- «дополнительная информация» - необязательный параметр, может включать обратный вызов или другую дополнительную информацию.
toggle()
toggle() изменит видимость элемента на противоположную её текущему состоянию, скрывая видимые элементы и отображая скрытые.
$this->jquery->toggle(target);
- «цель» - любой допустимый селектор jQuery или селекторы.
animate()
$this->jquery->animate(target, parameters, optional speed, optional extra information);
- «цель» - любой допустимый селектор jQuery или селекторы.
- «параметры» в jQuery обычно включают ряд свойств CSS, которые вы хотите изменить.
- «скорость» - необязательный параметр, может быть slow, normal, fast или, альтернативно, количество миллисекунд.
- «дополнительная информация» - необязательный параметр, может включать обратный вызов или другую дополнительную информацию.
Полный обзор см. в https://api.jquery.com/animate/
Вот пример вызова animate() для div с id «note», вызванного событием click() библиотеки jQuery.
$params = array(
'height' => 80,
'width' => '50%',
'marginLeft' => 125
);
$this->jquery->click('#trigger', $this->jquery->animate('#note', $params, 'normal'));
fadeIn() / fadeOut()
$this->jquery->fadeIn(target, optional speed, optional extra information); $this->jquery->fadeOut(target, optional speed, optional extra information);
- «цель» - любой допустимый селектор jQuery или селекторы.
- «скорость» - необязательный параметр, может быть slow, normal, fast или, альтернативно, количество миллисекунд.
- «дополнительная информация» - необязательный параметр, может включать обратный вызов или другую дополнительную информацию.
toggleClass()
Эта функция добавит или удалит CSS-класс к своей цели.
$this->jquery->toggleClass(target, class)
- «цель» - любой допустимый селектор jQuery или селекторы.
- «класс» - любой CSS-класс. Обратите внимание, что этот класс должен быть определён и доступен в уже загруженном CSS.
fadeIn() / fadeOut()
Эти эффекты заставляют элемент(ы) исчезать или появляться со временем.
$this->jquery->fadeIn(target, optional speed, optional extra information); $this->jquery->fadeOut(target, optional speed, optional extra information);
- «цель» - любой допустимый селектор jQuery или селекторы.
- «скорость» - необязательный параметр, может быть slow, normal, fast или, альтернативно, количество миллисекунд.
- «дополнительная информация» - необязательный параметр, может включать обратный вызов или другую дополнительную информацию.
slideUp() / slideDown() / slideToggle()
Эти эффекты заставляют элемент(ы) скользить.
$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);
- «цель» - любой допустимый селектор jQuery или селекторы.
- «скорость» - необязательный параметр, может быть slow, normal, fast или, альтернативно, количество миллисекунд.
- «дополнительная информация» - необязательный параметр, может включать обратный вызов или другую дополнительную информацию.
Плагины
Некоторые выбранные плагины jQuery доступны с помощью этой библиотеки.
corner()
Используется для добавления отдельных углов к элементам страницы. Полные сведения см. на http://malsup.com/jquery/corner/
$this->jquery->corner(target, corner_style);
- «цель» - любой допустимый селектор jQuery или селекторы.
- «стиль_угла» - необязательный параметр, может быть любым допустимым стилем, таким как round, sharp, bevel, bite, dog и т. д. Отдельные углы могут быть установлены, следуя стилю с пробелом и используя «tl» (верхний левый), «tr» (верхний правый), «bl» (нижний левый) или «br» (нижний правый).
$this->jquery->corner("#note", "cool tl br");
tablesorter()
Описание будет предоставлено позже.
modal()
Описание будет предоставлено позже.
calendar()
Описание будет предоставлено позже.
© 2014–2020 British Columbia Institute of Technology
Licensed under the MIT License.
https://codeigniter.com/userguide3/libraries/javascript.html