Skip to content

Instantly share code, notes, and snippets.

@miketierney
Created November 19, 2010 19:58
Show Gist options
  • Save miketierney/707048 to your computer and use it in GitHub Desktop.
Save miketierney/707048 to your computer and use it in GitHub Desktop.
(function($){
$.ajaxSettings.accepts._default="text/javascript, text/html, application/xml, text/xml, */*"
})(jQuery);
(function($){
$.fn.reset=function(){
return this.each(function(){
if(typeof this.reset=="function"||(typeof this.reset=="object"&&!this.reset.nodeType)){
this.reset()
}
})
};
$.fn.enable=function(){
return this.each(function(){
this.disabled=false
})
};
$.fn.disable=function(){
return this.each(function(){
this.disabled=true
})
}
})(jQuery);
(function($){
$.extend({
fieldEvent:function(el,obs){
var field=el[0]||el,e="change";
if(field.type=="radio"||field.type=="checkbox"){
e="click"
}
else{
if(obs&&(field.type=="text"||field.type=="textarea"||field.type=="password")){
e="keyup"
}
}
return e
}
});
$.fn.extend({
delayedObserver:function(delay,callback){
var el=$(this);
if(typeof window.delayedObserverStack=="undefined"){
window.delayedObserverStack=[]
}
if(typeof window.delayedObserverCallback=="undefined"){
window.delayedObserverCallback=function(stackPos){
var observed=window.delayedObserverStack[stackPos];
if(observed.timer){
clearTimeout(observed.timer)
}
observed.timer=setTimeout(function(){
observed.timer=null;
observed.callback(observed.obj,observed.obj.formVal())
} ,observed.delay*1000);
observed.oldVal=observed.obj.formVal()
}
}
window.delayedObserverStack.push({obj:el,timer:null,delay:delay,oldVal:el.formVal(),callback:callback});
var stackPos=window.delayedObserverStack.length-1;
if(el[0].tagName=="FORM"){
$(":input",el).each(function(){
var field=$(this);
field.bind($.fieldEvent(field,delay),function(){
var observed=window.delayedObserverStack[stackPos];
if(observed.obj.formVal()==observed.oldVal){
return
}
else{
window.delayedObserverCallback(stackPos)
}
})
})
}
else{
el.bind($.fieldEvent(el,delay),function(){
var observed=window.delayedObserverStack[stackPos];
if(observed.obj.formVal()==observed.oldVal){
return
}
else{
window.delayedObserverCallback(stackPos)
}
})
}
},
formVal:function(){
var el=this[0];
if(el.tagName=="FORM"){
return this.serialize()
}
if(el.type=="checkbox"||el.type=="radio"){
return this.filter("input:checked").val()||""
}
else{
return this.val()
}
}
})
})(jQuery);
(function($){
$.fn.extend({
visualEffect:function(o,options){
if(options){
speed=options.duration*1000
}
else{
speed=null
}
e=o.replace(/\_(.)/g,function(m,l){
return l.toUpperCase()
});
return eval("$(this)."+e+"("+speed+")")
},
appear:function(speed,callback){
return this.fadeIn(speed,callback)
},
blindDown:function(speed,callback){
return this.show("blind",{direction:"vertical"},speed,callback)
},
blindUp:function(speed,callback){
return this.hide("blind",{direction:"vertical"},speed,callback)
},
blindRight:function(speed,callback){
return this.show("blind",{direction:"horizontal"},speed,callback)
},
blindLeft:function(speed,callback){
this.hide("blind",{direction:"horizontal"},speed,callback);
return this
},
dropOut:function(speed,callback){
return this.hide("drop",{direction:"down"},speed,callback)
},
dropIn:function(speed,callback){
return this.show("drop",{direction:"up"},speed,callback)
},
fade:function(speed,callback){
return this.fadeOut(speed,callback)
},
fadeToggle:function(speed,callback){
return this.animate({opacity:"toggle"},speed,callback)
},
fold:function(speed,callback){
return this.hide("fold",{},speed,callback)
},
foldOut:function(speed,callback){
return this.show("fold",{},speed,callback)
},
grow:function(speed,callback){
return this.show("scale",{},speed,callback)
},
highlight:function(speed,callback){
return this.show("highlight",{},speed,callback)
},
puff:function(speed,callback){
return this.hide("puff",{},speed,callback)
},
pulsate:function(speed,callback){
return this.show("pulsate",{},speed,callback)
},
shake:function(speed,callback){
return this.show("shake",{},speed,callback)
},
shrink:function(speed,callback){
return this.hide("scale",{},speed,callback)
},
squish:function(speed,callback){
return this.hide("scale",{origin:["top","left"]},speed,callback)
},
slideUp:function(speed,callback){
return this.hide("slide",{direction:"up"},speed,callback)
},
slideDown:function(speed,callback){
return this.show("slide",{direction:"up"},speed,callback)
},
switchOff:function(speed,callback){
return this.hide("clip",{},speed,callback)
},
switchOn:function(speed,callback){
return this.show("clip",{},speed,callback)
}
})
})(jQuery);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment