Element.Event.Pseudos

Визначає корисну псевдо-подію: :once, а також метод definePseudo для створення власних. Див. також псевдо :relay в Element.Delegation.

Demo

Pseudo: once

Подія спрацює лише один раз. Псевдо once видалить себе після першого виконання.

Приклад:

myElement.addEvent('click:once', function(){
    alert('you clicked me');
});
 
// If the user clicks the element twice, it will only once alert 'you clicked me'

Примітка:

Це саме те, що й псевдо-подія Events.Pseudos :once.

Pseudo: throttle

Забезпечує, щоб подія не спрацьовувала частіше одного разу за певний проміжок часу. Це особливо корисно для подій, які можуть спрацьовувати часто, як scroll, resize або keydown. Для кращої продуктивності замість виконання важкої функції, як Request, багато разів, подія спрацьовує лише раз за, наприклад, 250 мілісекунд.

Тривалість проміжку за замовчуванням — 250 мілісекунд.

Приклад:

$('myElement').addEvent('scroll:throttle', function(){
    // Will only fire once every 250 ms
});
 
window.addEvent('resize:throttle(400)', function(){
    // Will only fire once every 400 ms
});

Примітка:

Це саме те, що й псевдо-подія Events.Pseudos :throttle.

Pseudo: pause

Подія спрацьовує лише тоді, коли оригінальна подія не спрацьовує знову протягом заданого часу. Отже, коли спрацьовує перша подія, а друга — через 100 мс, перша скасовується, і спрацьовує лише друга. Це корисно, наприклад, для автозаповнення полів, яке використовує Request.

Час паузи за замовчуванням — 250 мілісекунд.

Приклад:

$('myElement').addEvent('keydown:pause', function(){
    // Default time is 250 ms
});
 
$('myElement').addEvent('keydown:pause(100)', function(){
    // The pause time is now 100 ms.
});

Примітка:

Це саме те, що й псевдо-подія Events.Pseudos :pause.

DOMEvent

Function: DOMEvent.definePseudo

Можливо визначити власні псевдо за допомогою DOMEvent.definePseudo

Синтаксис

DOMEvent.definePseudo(name, fn);

Аргументи:

  1. name - (string) Назва псевдо, наприклад once стане click:once
  2. fn - (function) Функція, яка викликається при спрацюванні події. Ця функція повинна вирішувати, що станеться з подією, наприклад, виконати подію і видалити її

Сигнатура:

fn(split, fn, args){
  1. split - (object) розібраний об'єкт рядка event:pseudo(value)
    • event - (string) частина перед :
    • value - (string) між ( і )
    • pseudo - (string) між : і (
    • original - (string) оригінальна назва події, отже event:pseudo(value)
  2. fn - (function) Це функція, передана в метод addEvent. Тобто це 'fn' у myEvent.addEvent('event:pseudo', fn)
  3. args - (array) Масив з аргументами. Об'єкт DOMEvent у більшості випадків є першим елементом.

Змінна this посилається на Element, до якого додається подія.

Приклад

Ось як реалізовано псевдо :once

DOMEvent.definePseudo('once', function(split, fn, args){
    fn.apply(this, args);
    this.removeEvent(split.original, fn);
});

Эта документация распостраняется на правах Attribution-NonCommercial-ShareAlike 3.0 License.
Оригинал документации на английском.
© Linux.ria.com, 2008-2026