/*
** Darkthread's Tools for jQuery ver 1.0 **
by Jeffrey, 2010-02-25, http://blog.darkthread.net
=======================================================
checkStyle: to check if specific style selector is defined
addStyles: add <style type="text/css"> dynamically
addDefaultStyles: if specific style selector isn't defined, add style setting
*/
jQuery.extend(jQuery, { Darkthread: {} });jQuery.extend(jQuery.Darkthread, { tools: { //ruleSelector sample: a:hover, .myClass, #someId
checkStyle:
function(ruleSelector) { //REF: http://www.javascriptkit.com/dhtmltutors/externalcss3.shtml
var cssCol = document.styleSheets;
ruleSelector = ruleSelector.toLowerCase();
for (var i = 0; i < cssCol.length; i++) { var rules = cssCol[i].cssRules || cssCol[i].rules;
for (j = 0; j < rules.length; j++)
if (rules[j].selectorText.toLowerCase() == ruleSelector)
return true;
}
return false;
},
/*styleDictionary sample:
{ "a:hover": { "background-color": "red", "color":"yellow" }, "#dvTest": { "border", "solid blue 1px" } }
Note: it's for <style> declaration, not for jQuery.css, so don't use
backgourndColor instead of "background-color"
*/
addStyles:
function(styleDictionary) { var sb = [];
for (var selector in styleDictionary) { sb.push(selector + " {"); var props = styleDictionary[selector];
for (var p in props) { sb.push(p + ":" + props[p] + ";");
}
sb.push("}"); }
$("head").append("<style type=\"text/css\">\n" + sb.join("\n") + "\n</style>"); },
addDefaultStyles:
function(ruleSelector, styleDictionary) { if (!$.Darkthread.tools.checkStyle(ruleSelector))
$.Darkthread.tools.addStyles(styleDictionary);
}
}
});