/*! | |
* jquery.addrule.js 0.0.2 - https://gist.github.com/yckart/5563717/ | |
* Add css-rules to an existing stylesheet. | |
* | |
* @see http://stackoverflow.com/a/16507264/1250044 | |
* | |
* Copyright (c) 2013 Yannick Albert (http://yckart.com) | |
* Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php). | |
* 2013/11/23 | |
**/ | |
(function ($) { | |
window.addRule = function (selector, styles, sheet) { | |
styles = (function (styles) { | |
if (typeof styles === "string") return styles; | |
var clone = ""; | |
for (var prop in styles) { | |
if (styles.hasOwnProperty(prop)) { | |
var val = styles[prop]; | |
prop = prop.replace(/([A-Z])/g, "-$1").toLowerCase(); // convert to dash-case | |
clone += prop + ":" + (prop === "content" ? '"' + val + '"' : val) + "; "; | |
} | |
} | |
return clone; | |
}(styles)); | |
sheet = sheet || document.styleSheets[document.styleSheets.length - 1]; | |
if (sheet.insertRule) sheet.insertRule(selector + " {" + styles + "}", sheet.cssRules.length); | |
else if (sheet.addRule) sheet.addRule(selector, styles); | |
return this; | |
}; | |
if ($) $.fn.addRule = function (styles, sheet) { | |
addRule(this.selector, styles, sheet); | |
return this; | |
}; | |
}(this.jQuery || this.Zepto)); |
This comment has been minimized.
This comment has been minimized.
Keep getting |
This comment has been minimized.
This comment has been minimized.
Removing that line fixed it. |
This comment has been minimized.
This comment has been minimized.
/*!
* jquery.addrule.js 0.0.1 - https://gist.github.com/yckart/5563717/
* Add css-rules to an existing stylesheet.
*
* @see http://stackoverflow.com/a/16507264/1250044
*
* Copyright (c) 2013 Yannick Albert (http://yckart.com)
* Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php).
* 2013/05/12
**/
(function ($) {
window.addRule = function (selector, styles, sheet) {
if (typeof styles !== "string") {
var clone = "";
for (var style in styles) {
var val = styles[style];
style = style.replace(/([A-Z])/g, "-$1").toLowerCase(); // convert to dash-case
clone += style + ":" + (style === "content" ? '"' + val + '"' : val) + "; ";
}
styles = clone;
}
sheet = sheet || document.styleSheets[0];
sheet.addRule(selector, styles);
return this;
};
if ($) {
$.fn.addRule = function (styles, sheet) {
addRule(this.selector, styles, sheet);
return this;
};
}
}(window.jQuery)); This works Update Discovered it wasn't working because I wasn't running on It's a security thing. Same thing happens if you expect protocol-less files (like Google's jQuery CDN) to work in |
This comment has been minimized.
This comment has been minimized.
Having trouble with looping over Update Nevermind, sorry to make you check this. I had to iterate over it and do a bunch of nth-child hackery. Works now. Thanks! |
This comment has been minimized.
This comment has been minimized.
@corysimmons Thanks for the great suggestions. Didn't noticed that adding custom css-rules result in a security thing. I’ll roll up this piece of code next week and try to fix some things. Thanks again for your investigation! :-) |
This comment has been minimized.
This comment has been minimized.
@yckart you're a life saver, thank you for this. Works like a charm, I'm using it in a resize function to readjust the height of a psuedo dynamically. Only question I had was it adds elements constantly is there anyway to clean up the previously added rules maybe with an additional removeRule call? |
This comment has been minimized.
This comment has been minimized.
I'm actually getting the following error: Any ideas? Edit: My mistake, the ":before" was missing on my call |
This comment has been minimized.
This comment has been minimized.
That's a great function. Is there any way to remove a previously applied ':after' style? |
This comment has been minimized.
This comment has been minimized.
This is brilliant. liked subscribed, followed, etc. |
This comment has been minimized.
This comment has been minimized.
Excellent, just what I needed! Thanks. |
This comment has been minimized.
This comment has been minimized.
jQuery ? kkk I think that now you can remove the JQuery integration and modernize the JS |
This comment has been minimized.
http://jsfiddle.net/ARTsinn/bNkfP/