Llamar a una function jQuery dentro de html return desde una llamada AJAX

Estoy trabajando en una página web que usa jQuery. Tengo una llamada Ajax que obtiene datos del server y actualiza un div. Dentro de esos datos hay una function jQuery, pero la function no se llama después de que los datos se cargan en la página. Ya tengo los files js adecuados incluidos en la página.

Esto es lo que se devuelve de la llamada Ajax y se coloca en un div:

<script type="text/javascript"> $(function() { $('input').myFunction('param'); }); </script> <p> other html </p> 

¿Cómo puedo get el javascript devuelto para ejecutar después de que el html se inserta en la página?

(Estoy usando Rails con el plugin jRails)

Si desea una evaluación de label JavaScript, con contenido html, debe establecer la opción dataType de la llamada ajax a "html":

 $.ajax({ type: "GET", url: "yourPage.htm", dataType: "html" }); 

O dataType "script", si desea cargar y ejecutar un file .js:

 $.ajax({ type: "GET", url: "test.js", dataType: "script" }); 

más información aquí: Ajax / jQuery.ajax

Tuve un problema similar en el que quería agregar pequeños selectores de date jquery a un par de campos que estaba recuperando a través de ajax. esto es lo que hice para evitarlo … solo rápido y sucio. En lugar de devolver todo este bloque desde mi llamada ajax:

 <script type="text/javascript"> $(function() { $('input').myFunction('param'); }); </script> <p> other html </p> 

Yo devolvería esto (fíjese en el separador | x | compuesto)

  $(function() { $('input').myFunction('param'); }); |x| <p> other html </p> 

Luego, cuando recibí los datos a través de ajax, dividí el valor de retorno en 2 partes: el javascript que se ejecutará y el html que se mostrará:

  r = returnvalfromajax.split("|x|"); document.getElementById('whatever').innerHTML = r[1]; eval(r[0]); 

Cambiando

 <script type="text/javascript"> ... </script> 

A:

 <script> ... </script> 

Solucionado el problema para mí.

Bueno, puedes usar la function jQuery load (): http://docs.jquery.com/Ajax/load#urldatacallback Como callback puedes definir la function que se ejecutará luego de cargar el nuevo ejemplo de contenido:

$ ("# feeds"). load ("new_content.html" ,, doSomething ());

y en new_content.html puede definir la function doSomething () …

para ajax.net la endRequestHandler(sender, args) funciona bien aunque

¿Has probado el método Sys.WebForms.PageRequestManager.add_endRequest?

  $(document).ready(function() { Sys.WebForms.PageRequestManager.getInstance().add_endRequest(endRequestHandler); } ); function endRequestHandler(sender, args) { // whatever }