Tutorial :jQuery .live() and Document ready



Question:

I'm trying to set a CSS style using .live(). The CSS function:

$(".data tr:odd").addClass("evenrows");   

Is there a way for this to happen automatically on document ready but still happen for future elements? I've got an ajax event on the page that re-orders a table. I need these newly created rows to have the .addClass applied to them.

Thanks in advance.


Solution:1

you could use the Livequery plugin. It binds itself to DOM mutation events to track changes in the DOM, and re binds and re executes code attached to them, e.g:

$(".data tr:odd").livequery(function(){     $(this).addClass("evenrows");  });  


Solution:2

We've accomplished this by hooking into the Ajax event delegates and doing whatever we want there. See "Complete" here: http://docs.jquery.com/Ajax/jQuery.ajax#options

You would use Live to attach any event handlers to those new rows. See: http://docs.jquery.com/Events/live#typefn


Solution:3

Right now our JavaScript is setting up a Global ajax call function that accepts the parameters needed. Using a template function with extension parameters available to cause the changes you want to make could eliminate any unnecessary duplicate code and open possibilities for more manageable code.

Example:

GlobalObject.AjaxFunction(sUrl, SData, fnOnSuccess, fnOnError, oExtension)  {     //Set up Ajax process       // check type of extension as a function     if (typeof oExtension === 'function')     {        oExtension();     }  }  

This would enable your code to have generic availability for after ajax processing.

Hope this helps in context with your needs, if I didn't quite understand comment to let me know!


Note:If u also have question or solution just comment us below or mail us on toontricks1994@gmail.com
Previous
Next Post »