I was wondering if someone could shed some light on some interesting behavior I'm running into.
I'm following a very simple jQuery example in order to set up an activity / busy indicator, as seen in the following page: http://skfox.com/jqExamples/AjaxActivity.html There is a simple gif that loads whenever an asynchronous event is kicked off. (good to go there) The jQuery code is very straight forward. // prepare the form when the DOM is ready $(document).ready(function() { // Setup the ajax indicator $("body").append('<div id="ajaxBusy"><p><img src="images/loading.gif"></p></div>'); $('#ajaxBusy').css({ display:"none", margin:"0px", paddingLeft:"0px", paddingRight:"0px", paddingTop:"0px", paddingBottom:"0px", position:"absolute", right:"3px", top:"3px", width:"auto" }); // Ajax activity indicator bound // to ajax start/stop document events $(document).ajaxStart(function(){ $('#ajaxBusy').show(); }).ajaxStop(function(){ $('#ajaxBusy').hide(); }); // blah blah }); }); I wanted to clean the code up a bit and move the CSS stuff into my .css file, along with put the actual HTML code ('<div id="ajaxBusy"><p><img src="images/loading.gif"></p></div>') into my HTML template. When I do this, however, the .gif appears on the page wherever I drop the <div id...> code. Some questions below. (a) why does the indicator appear at all if I have the styling in the .css file and the <div id...> code in the HTML file? The styling ID indicates that the gif should be hidden. (b) why does putting the CSS + HTML inside of the Javascript result in the gif appear in the upper right hand corner (as it should)? (c) is it good practice to put HTML + CSS in the Javascript block? I realize that the CSS + HTML is only being appended to the DOM *after* the DOM has fully loaded when I place the code in the Javascript block. I don't see, however, how this makes a difference. Thoughts? Ideas? -j