Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/12/2012, 19:56
Avatar de catpaw
catpaw
 
Fecha de Ingreso: mayo-2010
Ubicación: xalapa
Mensajes: 856
Antigüedad: 14 años
Puntos: 23
funcion que depende de un alert para continuar??

que tal forer@s

estoy un tanto confundida ya que me pasa algo raro, ahí les va la explicacion

tengo una función que la declaraba dentro del document ready, inicialmente funciona muy bien pero cuando cargo contenido de forma dinámica con ajax, esta funcion deja de se reconocida, incluso cambie el document ready por un function únicamente y se comportaba igual, despues de una investigación, encontré que hay una forma de hacer un rebinding al document ready para que lo "actualice" despues del llamdo ajax y si funciona pero pasa algo raro, acá esta el code:

tengo mi pagina consulta.php:

en el head declaro lo siguiente:
Código Javascript:
Ver original
  1. $(document).ready(function(){
  2.     iniciarBinds();
  3.     //algunas funciones
  4. });
  5. function iniciarBinds() {
  6.     //alert("hola"); //si le comento este alert ya no llama la funcion despues de la llamada ajax
  7.     $('#collapser').jqcollapse({
  8.         slide: true,
  9.         speed: 200
  10.     });
  11. }
  12. </script>

despues de las declaraciones y esas cosas en mi codigo html hago una llamada a la funcion javascript que carga el contenido dinámico a consulta.php:

Seleccione la fecha:
<input id="con_fecha" name="con_fecha" type="text" size="10" onChange="search_docs()" />

Esta funcion la tengo en mi archivo funciones.js:

Código Javascript:
Ver original
  1. function search_docs(){
  2.         con_fecha = document.getElementById('con_fecha').value;
  3.         //llamada a ajax   
  4.     var ajax;
  5.     ajax= ajaxFunction();
  6.     ajax.open("GET", "consulta_process.php?con_fecha="+con_fecha, true);                   
  7.         ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  8.         ajax.onreadystatechange = function() {
  9.             if (ajax.readyState == 4){
  10.                 document.getElementById('capa_en_consulta.php').innerHTML=ajax.responseText;
  11.             }
  12.         }
  13.         ajax.send(null);
  14.     }
  15.     iniciarBinds(); //llamo la funcion para reiniciarla
  16. }

al final como pueden ver llamo la funcion iniciarBinds() misma que tengo declarada en el head de consultas.php:

function iniciarBinds() {
alert("hola");
$('#collapser').jqcollapse({
slide: true,
speed: 200
});
}

y aca esta lo raro si comento el alert, despues de cargar el ajax ya no funciona la funcion jqcollapse, si le dejo el alert me lo muestra y despues reconoce la funcion jqcollapse

es como si el alert obligara a que se tome en cuenta la declaración del jqcollapser al id collapser

o ustedes que creen que este pasando???

gracias

Última edición por catpaw; 20/12/2012 a las 20:08