Question

So as the title suggests I wish to create a new dom element (the HTML is generated and retrieved via AJAX). I kind of got it working but it appears hidden, and when I try to Fade In it breaks!

   function AddContent(Content) {
        div = document.createElement(Content)
        div.appendTo($("#contentAreas"));
        //    $(div).fadeIn("slow");
        }

It basically inserts the item into the correct position but doesn't show it. When I attempt to fade it in, it's fails to do so. No errors.

Any ideas?

Was it helpful?

Solution

The div needs to be jQuery for appendTo to work. Try this:

 function AddContent( content ) {
     $(content).appendTo("#contentAreas").fadeIn("slow");
 }

OTHER TIPS

Should be $(div).appendTo(...). Or you could change how div is created to div = $(Content), perhaps.

You don't need createElement, the jQuery constructor can take html as a parameter (assuming that content is an html string):

function AddContent(content) {
   var div = $(content);
   div.appendTo($("#contentAreas"));
   $(div).fadeIn("slow");
}

How about this:

   function AddContent(Content) {
        div = $('<div>' + Content + '</div>');           
        div.appendTo($("#contentAreas")).fadeIn("slow");
   }

The appendTo takes a selector so it does not need to be a jquery object as all the other examples above have it.

function AddContent( content ) {
     $(content).appendTo("#contentAreas").fadeIn("slow");
 }
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top