Agregar devolución de llamada en jQuery
Frecuentes
Visto 5,238 veces
0
tengo una solución:
var addContent = {
...
append: function (obj, data, callBack) {
"use strict";
obj.append(data);
callBack();
}
}
La función "addContent.append()" agrega su valor de parámetro de datos a su obj y llama a su callBack(), ¡también está funcionando! Pero el "parámetro obj" no ha estado en DOM, entonces ese elemento que lo encontró en "parámetro de datos" no está disponible.
Por ejemplo:
var to = jQuery('<div>');
addContent.append(to, '<div id="element1"></div>', function () {
alert(jQuery('#element1').length);
});
Este código dice "0".
¿Tienes alguna solución?
¡Gracias!
2 Respuestas
0
Si he entendido bien tu pregunta, el problema es que el elemento al que hace referencia to
no está en el DOM, por lo que cuando intenta seleccionar elementos que se le han agregado, no se encuentran (ya que su padre no está en el DOM).
Creo que lo que puede querer es el argumento de contexto:
alert(jQuery('#element1', to).length);
Esto seleccionará los elementos que coincidan #element1
que son descendientes de to
.
contestado el 22 de mayo de 12 a las 13:05
0
Utilice la función de documento listo
jQuery(document).ready(function(){
var addContent = {
append: function (obj, data, callBack) {
"use strict";
obj.append(data);
callBack();
}
}
var to = jQuery('div');
addContent.append(to, '<div id="element1">545</div>', function () {
alert(jQuery('#element1').length);
});
});
contestado el 22 de mayo de 12 a las 13:05
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas jquery callback append or haz tu propia pregunta.
Documento listo no es una solución porque es contenido "dynamic ajax". - Gábor Varga