Skip to content
Snippets Groups Projects
Commit 00162124 authored by Andreas Gohr's avatar Andreas Gohr
Browse files

deprecated even functions

These now simply wrap around jQuery
parent 17e2e254
No related branches found
No related tags found
No related merge requests found
// written by Dean Edwards, 2005
// with input from Tino Zijdel
// http://dean.edwards.name/weblog/2005/10/add-event/
function addEvent(element, type, handler) {
// assign each event handler a unique ID
if (!handler.$$guid) handler.$$guid = addEvent.guid++;
// create a hash table of event types for the element
if (!element.events) element.events = {};
// create a hash table of event handlers for each element/event pair
var handlers = element.events[type];
if (!handlers) {
handlers = element.events[type] = {};
// store the existing event handler (if there is one)
if (element["on" + type]) {
handlers[0] = element["on" + type];
}
}
// store the event handler in the hash table
handlers[handler.$$guid] = handler;
// assign a global event handler to do all the work
element["on" + type] = handleEvent;
};
// a counter used to create unique IDs
addEvent.guid = 1;
function removeEvent(element, type, handler) {
// delete the event handler from the hash table
if (element.events && element.events[type]) {
delete element.events[type][handler.$$guid];
}
};
function handleEvent(event) {
var returnValue = true;
// grab the event object (IE uses a global event object)
event = event || fixEvent(window.event, this);
// get a reference to the hash table of event handlers
var handlers = this.events[event.type];
// execute each event handler
for (var i in handlers) {
if (!handlers.hasOwnProperty(i)) continue;
if (handlers[i].call(this, event) === false) {
returnValue = false;
}
}
return returnValue;
};
function fixEvent(event, _this) {
// add W3C standard event methods
event.preventDefault = fixEvent.preventDefault;
event.stopPropagation = fixEvent.stopPropagation;
// fix target
event.target = event.srcElement;
event.currentTarget = _this;
// fix coords
var base = (document.documentElement.scrollTop?document.documentElement:document.body);
event.pageX = (typeof event.pageX !== 'undefined') ? event.pageX : event.clientX + base.scrollLeft;
event.pageY = (typeof event.pageY !== 'undefined') ? event.pageY : event.clientY + base.scrollTop;
return event;
};
fixEvent.preventDefault = function() {
this.returnValue = false;
};
fixEvent.stopPropagation = function() {
this.cancelBubble = true;
};
/**
* Pseudo event handler to be fired after the DOM was parsed or
* on window load at last.
*
* @author based upon some code by Dean Edwards
* @author Dean Edwards
* @link http://dean.edwards.name/weblog/2006/06/again/
*/
window.fireoninit = function() {
// quit if this function has already been called
if (arguments.callee.done) return;
// flag this function so we don't do the same thing twice
arguments.callee.done = true;
// kill the timer
if (_timer) {
clearInterval(_timer);
_timer = null;
}
if (typeof window.oninit == 'function') {
window.oninit();
}
};
/**
* Run the fireoninit function as soon as possible after
* the DOM was loaded, using different methods for different
* Browsers
* The event functions are no longer in use and a mere wrapper around
* jQuery's event handlers.
*
* @author Dean Edwards
* @link http://dean.edwards.name/weblog/2006/06/again/
* @deprecated
*/
// for Mozilla
if (document.addEventListener) {
document.addEventListener("DOMContentLoaded", window.fireoninit, null);
}
// for Internet Explorer (using conditional comments)
/*@cc_on
@if (@_win32)
document.write("<scr" + "ipt id=\"__ie_init\" defer=\"true\" src=\"//:\"><\/script>");
var script = document.getElementById("__ie_init");
script.onreadystatechange = function() {
if (this.readyState == "complete") {
window.fireoninit(); // call the onload handler
}
};
@end @*/
// for Safari
if (/WebKit/i.test(navigator.userAgent)) { // sniff
var _timer = setInterval(function() {
if (/loaded|complete/.test(document.readyState)) {
window.fireoninit(); // call the onload handler
}
}, 10);
}
// for other browsers
window.onload = window.fireoninit;
function addEvent(element, type, handler) {
DEPRECATED('Use jQuery.bind() instead.');
jQuery(element).bind(type,{},handler);
}
/**
* This is a pseudo Event that will be fired by the fireoninit
* function above.
*
* Use addInitEvent to bind to this event!
*
* @author Andreas Gohr <andi@splitbrain.org>
* @see fireoninit()
*/
window.oninit = function(){};
function removeEvent(element, type, handler) {
DEPRECATED('Use jQuery.unbind() instead.');
jQuery(element).unbind(type,handler);
}
/**
* Bind a function to the window.init pseudo event
*
* @author Simon Willison
* @see http://simon.incutio.com/archive/2004/05/26/addLoadEvent
*/
function addInitEvent(func) {
var oldoninit = window.oninit;
if (typeof window.oninit != 'function') {
window.oninit = func;
} else {
window.oninit = function() {
oldoninit();
func();
};
}
DEPRECATED('Use jQuery(<function>) instead');
jQuery(func);
}
/**
......@@ -168,6 +26,7 @@ function addInitEvent(func) {
* inside a loop
*
* @author Adrian Lang <lang@cosmocode.de>
* @fixme Is there a jQuery equivalent? Otherwise move to somewhere else
* @link http://www.cosmocode.de/en/blog/gohr/2009-10/15-javascript-fixing-the-closure-scope-in-loops
* @param functionref fnc - the function to be called
* @param mixed - any arguments to be passed to the function
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment