Below is a function from JQueryTools and I have never seen the following definition before and do not understand whats the purpose of it:
(function (b) { ....})(jQuery);
Why the round () braces around the function definition, and why is (jQuery) written behind it? What exactly does this do. From my point of view (jQuery) simply doesn't have any function here?? Where can I learn more about this syntax and purpose?
(function(b) {
b.fn.wheel = function(e) {
return this[e ? "bind" : "trigger"]("wheel", e)
};
b.event.special.wheel = {
setup : function() {
b.event.add(this, d, c, {})
},
teardown : function() {
b.event.remove(this, d, c)
}
};
var d = !b.browser.mozilla ? "mousewheel" : "DOMMouseScroll"
+ (b.browser.version < "1.9" ? " mousemove" : "");
function c(e) {
switch (e.type) {
case "mousemove":
return b.extend(e.data, {
clientX : e.clientX,
clientY : e.clientY,
pageX : e.pageX,
pageY : e.pageY
});
case "DOMMouseScroll":
b.extend(e, e.data);
e.delta = -e.detail / 3;
break;
case "mousewheel":
e.delta = e.wheelDelta / 120;
break
}
e.type = "wheel";
return b.event.handle.call(this, e, e.delta)
}
var a = b.tools.scrollable;
a.plugins = a.plugins || {};
a.plugins.mousewheel = {
version : "1.0.1",
conf : {
api : false,
speed : 50
}
};
b.fn.mousewheel = function(f) {
var g = b.extend( {}, a.plugins.mousewheel.conf), e;
if (typeof f == "number") {
f = {
speed : f
}
}
f = b.extend(g, f);
this.each(function() {
var h = b(this).scrollable();
if (h) {
e = h
}
h.getRoot().wheel(function(i, j) {
h.move(j < 0 ? 1 : -1, f.speed || 50);
return false
})
});
return f.api ? e : this
}
})(jQuery);