Devolución de llamada inicial para manipular el contenido de ThickBox con jQuery
Pregunta
Aquí está el escenario:
ThickBox se abre desde la ventana principal (cuando se presiona el botón) con contenido Ajax (formulario basado en div) que contiene el conjunto de entradas con soporte de autocompletar.Una vez que se cierra ThickBox (formulario), los valores de entrada deben pasarse a la ventana principal.
Pregunta:
El contenido de ThickBox se carga dinámicamente, entonces, ¿cuál es la forma correcta de tener una devolución de llamada inicial para manipular el contenido de ThickBox con jQuery (una especie de $(ThickBox).ready...)?
Solución
Mi opción preferida es investigar otras opciones de plugin modal como jqModal . Esto exponer OnShow y onHide ganchos de eventos que se pueden utilizar.
Thickbox está mostrando su edad, que no expone ningún evento 'show' que se puede observar. Si usted está decidido a utilizar thickbox entonces usted tiene algunas opciones.
Una opción sería utilizar los eventos globales que ajax jQuery expone caso por ejemplo $ .ajaxSuccess . Esto se disparará cuando thickbox ha solicitado con éxito los datos que muestran. Sin embargo en este punto thickbox pueden no haber añadido los datos a la modal, que tendrá que probar esto.
por ejemplo
$.ajaxSuccess( function(evt, request, settings){
//ajax method has completed
});
Tenga en cuenta que este evento se disparará al término de cada evento ajax que sucede dentro de su página, por tanto, es posible que desee algunas comprobaciones adicionales
Otra opción es cambiar el guión thickbox y añadir su propio código de devolución de llamada que le permite pasar de una función que se provoca cuando se muestra el modal.
Otros consejos
Puede utilizar el livequery plugin. Este plugin interceptará los cambios en el DOM y automágicamente volver a enlazar otros plugins para leer el DOM