Внутрішні функції m.js Компактний код - просте використання

Внутрішні функції m.js

Внутрішні функції m.js - m-framework.com

В нашому JS фреймворку m.js є ряд влаштованих функцій, котрі можуть бути застосованими до елементів, які огорнуті в об'єкт m, наприклад так:

m('#some-id .some-class')

Такий екземпляр m містить масиво-подібний набір елементів у внутрішній змінній elements. Ці елементи можна обійти як масив чи первірити їх кількість через length самого екземпляра m.

Більшість внутрішніх функцій повертають той самий екземпляр m, то ж цілком виправдане об'єктно-орієнтоване використання функцій, на зразок такого:

m('nav a')
.class({wait: null, active: true})
.append('<i class="fa fa-angle-down"></i>')
.on('click', function(){
console.log(this);
});

Спробуємо описати кожну з внутрішніх функцій окремо. Зверніть увагу, що не всі з них повертають екземпляр m з набором елементів!

Функція
Опис
active_toggle(context) Ініціює перемикання класу "active" на елементі context при натисненні на кожен з елементів набору.
Повертає той самий екземпляр m з набором елементів.
after(html) Вставляє код після кожного з елементів набору.
Повертає той самий екземпляр m з набором елементів.
animate(properties, duration, callback) Виклик анімації кожного з елементів набору з властивостями properties, з тривалістю ефекту duration та з викликом callback() по завершенню анімації.
Повертає той самий екземпляр m з набором елементів.
append(node) Вставляє код node всередину (в кінець всіх внутрішніх елементів) кожного з елементів набору.
Повертає той самий екземпляр m з набором елементів.
attr(name, val) Встановлює кожному елементу набору атрибут name з властивістю val.
Повертає той самий екземпляр m з набором елементів, або текстове значення
атрибуту name у випадку, якщо val порожня.
before(html) Вставляє код html перед кожним з елементів набору.
Повертає той самий екземпляр m з набором елементів.
change() Ініціює штучний виклик події change над кожним елементом набору.
Повертає той самий екземпляр m з набором елементів.
children(selector) Вибирає потомка в DOM за селектором selector, якщо той відсутній, то повертає першого потомка в екземплярі m.
Повертає новий екземпляр m з
набором елементів.
class(class_name, val) Встановлює чи повертає CSS клас набору елементів чи першого елементу відповідно, якщо val не задано. Аргумент class_name може бути об'єктом з кількома класами для встановлення/вимикання кількох класів за один обхід набору елементів, наприклад: {active: true, hidden: null, loading: true}. Також, val може бути текстовим ":toggle", що дасть перемикання наявності CSS класу.
Повертає той самий екземпляр m з набором елементів.
click() Ініціює виклик події click над кожним елементом набору.
Повертає той самий екземпляр m з набором елементів.
clone() Клонує перший елемент набору з усіма його дочірними елементами. Повертає новий набір з 1 елементом. Колонування подій, прив'язаних до першого елементу набору, не налаштовано і не досліджено повністю.
closest(selector, context) Повертає в наборі елементів m найближчий по ієрархії батьківський контейнер, що відповідає селектору selector або false у випадку незнаходження відповідності.
css(prop, val) Встановлює CSS-значення style кожному з елементів набору або повертає значення конкретної властивості, якщо val відсутнє. Атрибут prop може бути простим об'єктом і встановлювати набір CSS-значень за один обхід елементів набору.
Повертає той самий екземпляр m з набором елементів, або значення конкретної властивості.
dom(selector, context) Внутрішня функція, рідко використовується з-зовні m.fn. Знаходить набір елементів за селектором selector в context.  Якщо context порожній, пошук відбувається в глобальному об'єкті document.
Повертає масиво-подібний набір елементів, навіть якщо їх кількість 0.
each(callback) Застосовує ф-цію callback до кожного з елементів набору методом call() , тобто в середині ф-ції callback() контекст this стає кожним елементом набору по черзі.
Повертає той самий екземпляр m з набором елементів.
event(name, func) Дозволяє асоціювати певну функцію func до елементів набору за назвою події name. Або ж, повертає раніше асоційовану функцію за тією ж назвою події name. Слугує для ініціації подій над елементами для запобігання дублів однакових функцій при одній і тій же самій події.
Повертає той самий екземпляр m з набором елементів.
event_fire(event_type) Генерує штучний виклик функції заданого типу за event_type над кожним елементом набору. Наприклад: click, change, load, resize, тощо.
Повертає той самий екземпляр m з набором елементів.
find(selector) Намагається знайти всіх потомків в першому елементі набору за CSS-селектором.
Повертає той новий екземпляр m з набором елементів, навіть якщо їх кількість - 0.
Рекомендується перевірка через length перед подальшими діями!
first Використовується як властивість без аргументів, на зразок m('.selector').first . Повертає перший елемент набору, якщо набір не порожній або null. Зверніть увагу, що такий елемент не є екземпляром m, а звичайним HTMLElement.
Рекомендується перевірка на співпадіння з null перед подальшими діями.
form_collect() Збирає з редагованих полів першого елементу набору (це не обов'язково має бути форма) всі їх імена та значення в простий об'єкт. Зачасту слугує для передачі даних через Ajax.
form_populate(obj) Заповнює всі редаговані поля першого елементу набору (це не обов'язково має бути форма) даними з простого об'єкту obj.
Повертає той самий екземпляр m з набором елементів.
hide() Приховує кожен з елементів набору через встановлення CSS класу 'hidden'.
Повертає той самий екземпляр m з набором елементів.
hover() Ініціює штучний виклик події hover та виклик прив'язаної функції.
Повертає той самий екземпляр m з набором елементів.
html(html) Якщо html не порожнє, встановлює через innerHTML в перший елемент набору, повертає той самий екземпляр m з набором елементів.
Якщо html порожній текст або null, очищає вміст першого елементу набору через innerHTML, повертає той самий екземпляр m з набором елементів.
Якщо html порожній (undefined), повертає
innerHTML першого елементу набору.
i18n(key) Використовується без набору елементів. Функція намагається знайти і повернути текстовий відповідник в отриманому раніше об'єкті перекладів за ключем key. Якщо відповідник не знайдено, повертає назад той же key.
init() Рідко використовується з-зовні, більш "внутрішня" функція. Слугує для включення скриптів модулів і їх запуску, якщо в елементів набору є атрибути data-m-action.
Повертає той самий екземпляр m з набором елементів.
interval_animate(properties, duration, callback) Аналог animate() для старіших браузерів.
Повертає той самий екземпляр m з набором елементів.
is(selector) Виконує перевірку чи відповідає перший елемент набору результату пошуку в батьківському елементі за вказаним селектором.
Повертає true або false.
last Використовується як властивість без аргументів, на зразок m('.selector').last . Аналогічно до first, повертає останній елемент набору. Зверніть увагу, що такий елемент не є екземпляром m, а звичайним HTMLElement.
Рекомендується перевірка на співпадіння з null перед подальшими діями!
length Використовується як властивість без аргументів, на зразок m('.selector').length . Підраховує кількість елементів набору. Найкраще слугує для перевірки чи є в наборі після пошуку за селектором елементи взагалі.
Повертає int.
load_script(action, callback) Функція, в основному, застосовується по відношенню до body. Намагається вставити в тіло сторінки асинхронний скрипт модулю за назвою action та CSS за тією ж назвою. Далі викликає функцію callback. Використовується в основному в init().
next(selector) Намагається знайти наступний за першим елементом набору елемент-родич на тому ж рівні ієрархії за CSS селектором selector. Повертає або екземпляр m, або false.
Якщо ж
selector null або undefined, бере наступний елемент за першим елементом набору через nextElementSibling.
nth(n) Дозволяє взяти HTMLElement з набору за його номером в наборі (починаючи з 0).
Зверніть увагу, що такий елемент не є екземпляром m, а звичайним HTMLElement.
obj_merge(dst, src) Дозволяє об'єднати простий одномірний об'єкт src з об'єктом dst. Не має внутрішніх елементів в наборі, викликається через m.fn.obj_merge(dst, src).
Повертає об'єкт dst.
off(events) Вимикає функції подій, прив'язані до елементів набору за назвами в events (можна декілька через пробіл) .
Повертає той самий екземпляр m з набором елементів.
offset() Намагається визначити розташування першого елементу набору на сторінці.
Повертає простий об'єкт {top: int, left: int}.
on(events, callback) Прив'язує функції callback до кожного елементу набору за подіями в events (можуть бути декілька через пробіл).
Повертає той самий екземпляр m з набором елементів.
parent(selector) Шукає прямий батьківський елемент за селектором або через closest().
Повертає екземпляр m з 1 елементом або false.
Рекомендується перевірка на length перед подальшими діями!
prepend(node) Аналогічно до append() вставляє на початок кожного елементу в наборі елемент node.
Повертає той самий екземпляр m з набором елементів.
prev(selector) Аналогічно до next(), намагається взяти попереднього "родича" до першого елементу набору за селектором selector.
Повертає екземпляр m з 1 елементом або false.
Рекомендується перевірка на length перед подальшими діями!

ready(callback) Кріпить ф-цію callback на подію onreadystatechange та onload першого елементу набору. Зазвичай такий елемент - body, image, script, тощо.
Повертає той самий екземпляр m з набором елементів.
remove() Знищує всі елементи набору через removeChild() та знищує поточний екземпляр m.
Повертає нетипове false.
remove_script(action) Знищує інтеграцію скрипту модуля в DOM за його назвою в action. Повертає те ж саме false, що й remove().
replace(node) Замінює кожен з елементів набору елементом з node. Використовується replaceChild().
Повертає той самий екземпляр m з набором нових елементів.
replace_with(m_element) Виконує заміну елементів поточного набору з елементами з набору m_element.
Повертає той самий екземпляр m з набором нових елементів.
show() Змінює видимість всіх елементів набору, видаляючи CSS клас 'hidden' та встановлюючи CSS стиль "display: 'block'".
Повертає той самий екземпляр m з набором елементів.
slide(direction) Застосовує animate() до кожного елементу набору, змінюючи їх висоту в залежності від значення direction:
'down' - розгортає вниз з 0 до 100% висоти,
':toggle' - обернено розкриває або приховує кожн з елементів,
'up' або будь-яке інше значення - згортає кожен з елементів набору до 0px за висотою.
Повертає той самий екземпляр m з набором елементів.
submit() Ініціює штучний виклик події submit та виклик прив'язаної функції.
Повертає той самий екземпляр m з набором елементів.
text() Аналогічно до html(), хоча без аргументу і можливості запису, намагається отримати внутрішній текст першого елементу набору.
Повертає TextNode або null.
toggle() Змінює CSS властивість display між 'none' та 'block' в кожному елементі набору.
Повертає той самий екземпляр m з набором елементів.
translate() Намагається перекласти мовні змінні з шаблону m-framework (слова латиницею, обрамлені символами *) на значення за допомогою ф-ції m.i18n() з раніше отриманого JSON-об'єкту перекладів.
Повертає той самий екземпляр m з набором елементів.
val(val) Намагається отримати значення через стандартну ф-цію value першого елементу в наборі (як правило - текстові поля чи checkbox) та повернути його якщо аргумент val порожній. У випадку, якщо аргумент val не порожній, встановлює значення з val кожному елементу з набору через стандартну функцію value та повертає той самий екземпляр m з набором елементів.
visible() Первіряє чи всі елементи набору є видимі в поточному фокусі вікна.
Повертає булевий результат (true|false).
wrap(node) Огортає кожен з елементів набору елементом з node. Події оригінальних елементів мають бути без змін прикріплені до них, тобто не втрачаються при огортанні.
Повертає той самий екземпляр m з набором елементів.


Задавайте свої запитання у формі нижче. Ми спробуємо відповісти якнайшвидше.


Коментарі користувачів


Вибачте, Ви не можете залишити коментар. Спробуйте авторизуватись за допомогою логіну та паролю або скористайтеся однією з соціальних мереж: