Визначає корисну псевдо-подію: :once, а також метод definePseudo для створення власних. Див. також псевдо :relay в Element.Delegation.
Подія спрацює лише один раз. Псевдо 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.
Забезпечує, щоб подія не спрацьовувала частіше одного разу за певний проміжок часу. Це особливо корисно для подій, які можуть спрацьовувати часто, як 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.
Подія спрацьовує лише тоді, коли оригінальна подія не спрацьовує знову протягом заданого часу. Отже, коли спрацьовує перша подія, а друга — через 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.definePseudo
DOMEvent.definePseudo(name, fn);
once стане click:once
fn(split, fn, args){
event:pseudo(value)
:
( і )
: і (
event:pseudo(value)
addEvent. Тобто це 'fn' у myEvent.addEvent('event:pseudo', fn)
Змінна this посилається на Element, до якого додається подія.
Ось як реалізовано псевдо :once
DOMEvent.definePseudo('once', function(split, fn, args){ fn.apply(this, args); this.removeEvent(split.original, fn); });
| © Linux.ria.com, 2008-2026 |