JSFiddle - React, Tailwind, and code Playground
by kontrach
HTML
<button class="bind">bind</button>
<button class="unbind">unbind</button>
JavaScript
function bind (obj, event_name, handler) {
var handler_wrapper = function (event) {
event = event || window.event;
if (!event.target && event.srcElement) {
event.target = event.srcElement;
}
return handler.call(obj, event);
};
if (obj.addEventListener) {
obj.addEventListener(event_name, handler_wrapper, false);
} else if (obj.attachEvent) {
obj.attachEvent('on' + event_name, handler_wrapper);
}
return handler_wrapper;
}
function unbind (obj, event_name, handler) {
if (obj.removeEventListener) {
obj.removeEventListener(event_name, handler, false);
} else {
obj.detachEvent('on' + event_name, handler);
}
}
function sayHello() {
console.log('hello');
}
var bindBtn = document.querySelector('.bind');
var unbindBtn = document.querySelector('.unbind');
bindBtn.onclick = function(){ document.body.addEventListener('mousemove', sayHello, false); }
unbindBtn.onclick = function(){ document.body.removeEventListener('mousemove', sayHello); }
//а этот вариант не работает
bindBtn.onclick = function() {bindEvent(document.body, 'mousemove', sayHello)};
unbindBtn.onclick = function() {unbindEvent(document.body, 'mousemove', sayHello)}