问题
Is there an event after CSS rules applied to all elements in the DOM ?
i know that the binding $(window).load(), from jQuery, is fired when all js and css files are loaded.
But not when they are applied (there is a small delay of some milliseconds between applying and inlcuding dynamically, such as: $('#design').attr('href', 'style.css') // design is an <link href="otherstyles.css">).
回答1:
As per here, you could grab the contents of the CSS file with AJAX and then use jQuery's built in complete call to tell when the CSS has loaded.
回答2:
Such an event does not exist.
- For all attribute changes, you can listen to the DOMAttrModifed mutation event.
- Another option is to monitor specific style properties in an periodic function (interval),
Another method is to modify the
jQuery.fn.cssmethod, to intercept style changes via the jQuery API. This assumes that all relevant CSS property updates are done via jQuery.(function($){ var $css = $.fn.css; $.fn.css = function(a,c) { if (c == null) return $css.call(this, a); return this.each(function() { var $this = $(this); // Your function logic... // ... // Call original method $css.call($this, a, c); }); }; })(jQuery);
来源:https://stackoverflow.com/questions/9779113/event-after-applied-css-rules-on-elements-in-jquery-javascript