Extensions
by Florian Bar
JavaScript
if (typeof String.prototype.startsWith != 'function') {
String.prototype.startsWith = function (str) {
return this.indexOf(str) == 0;
};
}
$(window).on("respondJsCompleted", function () {
$(window).trigger("siteLoaded");
});
$(window).load(function () {
$(window).trigger("siteLoaded");
});
$.fn.isRadio = function () {
return $(this).attr("type") == "radio";
};
$.fn.isCheckbox = function () {
return $(this).attr("type") == "checkbox";
};
$.fn.isInput = function () {
return $(this).is("input");
};
$.fn.isSelect = function () {
return $(this).is("select");
};
$.fn.findLabel = function () {
return $("label[for='" + $(this).attr("id") + "']");
}
$.fn.hasAttr = function (attrName) {
var attr = $(this).attr(attrName);
return (typeof attr !== 'undefined' && attr !== false);
}
$.fn.hasVal = function (val) {
var input = $(this);
if (input.isCheckbox() || input.isRadio()) {
return $("input[name='" + input.attr("name") + "']:checked").length > 0;
} else {
if (val) {
return (input.val() == val);
} else {
return (input.val() != "");
}
}
}
$.fn.outerHtml = function () {
//like .html() but also grabs the parent html
var $this = $(this);
var wrapper = $(this).wrap('<span />').parent();
var html = wrapper.html();
$this.unwrap();
return html;
};
$.fn.loadAll = function (callback) {
var self = this;
var $self = $(self);
var count = $self.length;
var loaded = 0;
$self.load(function (response, status, xhr) {
loaded++;
if (loaded == count) { callback(); }
});
return self;
};
$.fn.slideToggleFallback = function (duration) {
var self = this;
var time = duration || 200;
if (oldIe != 'ie7') {
this.slideToggle(time);
} else {
this.toggle();
}
return self;
};
$.fn.slideFallback = function (direction, duration, callback) {
var self = this;
...