ГФ
Size: a a a
ГФ
EP
EP
document.addEventListener('DOMContentLoaded', callback);
достаточно, если не надо дожидаться полной загрузки всех картинок и прочего.A
document.addEventListener('DOMContentLoaded', callback);
достаточно, если не надо дожидаться полной загрузки всех картинок и прочего.В
const jimCarrey = (value) => {
const list = typeof value === 'string'
? [ ...document.querySelectorAll(value) ]
: value
const _ = {
each: (fn) => jimCarrey(list
.map((node) => (fn(node), node))),
bind: (...args) => jimCarrey(list)
.each((node) => node.addEventListener(...args)),
unbind: (...args) => jimCarrey(list)
.each((node) => node.removeEventListener(...args)),
mouseenter: (handler) => jimCarrey(list)
.bind('mouseenter', handler),
mouseleave: (handler) => jimCarrey(list)
.bind('mouseleave', handler),
hover: (enter, leave = enter) => jimCarrey(list)
.mouseenter(enter).mouseleave(leave)
}
return _
}
const enter = (e) => console.log('mouseenter: ', e.target)
const leave = (e) => console.log('mouseleave: ', e.target)
jimCarrey('button').hover(enter, leave)
setTimeout(() => {
jimCarrey('button')
.unbind('mouseenter', enter)
.unbind('mouseleave', leave)
.bind('click', (e) => console.log('click: ', e.target))
}, 4000)
S
const jimCarrey = (value) => {
const list = typeof value === 'string'
? [ ...document.querySelectorAll(value) ]
: value
const _ = {
each: (fn) => jimCarrey(list
.map((node) => (fn(node), node))),
bind: (...args) => jimCarrey(list)
.each((node) => node.addEventListener(...args)),
unbind: (...args) => jimCarrey(list)
.each((node) => node.removeEventListener(...args)),
mouseenter: (handler) => jimCarrey(list)
.bind('mouseenter', handler),
mouseleave: (handler) => jimCarrey(list)
.bind('mouseleave', handler),
hover: (enter, leave = enter) => jimCarrey(list)
.mouseenter(enter).mouseleave(leave)
}
return _
}
const enter = (e) => console.log('mouseenter: ', e.target)
const leave = (e) => console.log('mouseleave: ', e.target)
jimCarrey('button').hover(enter, leave)
setTimeout(() => {
jimCarrey('button')
.unbind('mouseenter', enter)
.unbind('mouseleave', leave)
.bind('click', (e) => console.log('click: ', e.target))
}, 4000)
В
const jimCarrey = (value) => {
const list = typeof value === 'string'
? [ ...document.querySelectorAll(value) ]
: value
const _ = {
each: (fn) => jimCarrey(list
.map((node) => (fn(node), node))),
bind: (...args) => jimCarrey(list)
.each((node) => node.addEventListener(...args)),
unbind: (...args) => jimCarrey(list)
.each((node) => node.removeEventListener(...args)),
mouseenter: (handler) => jimCarrey(list)
.bind('mouseenter', handler),
mouseleave: (handler) => jimCarrey(list)
.bind('mouseleave', handler),
hover: (enter, leave = enter) => jimCarrey(list)
.mouseenter(enter).mouseleave(leave)
}
return _
}
const enter = (e) => console.log('mouseenter: ', e.target)
const leave = (e) => console.log('mouseleave: ', e.target)
jimCarrey('button').hover(enter, leave)
setTimeout(() => {
jimCarrey('button')
.unbind('mouseenter', enter)
.unbind('mouseleave', leave)
.bind('click', (e) => console.log('click: ', e.target))
}, 4000)