el comportamiento de dom jquery no funciona
Frecuentes
Visto 89 equipos
-1
Tengo la siguiente función que funciona correctamente:
$(function() {
var availableTags = <? echo htmlspecialchars($jsEnc,ENT_NOQUOTES,'utf-8');?>;
$( "input.tags" ).autocomplete({
source: availableTags
});
});
Sobre todos los preexistentes:<input class="tags"/>
la función hace lo que debería (una lista de autocompletar que es un volcado de base de datos).
Ahora, estas entradas realmente existen en un <table>
, con filas que se pueden agregar o quitar sobre la marcha.
Al agregar las celdas a la tabla, hago lo siguiente:
if(i== document.getElementById("soldTo").cellIndex){
element2.setAttribute('class','tags');
}
Lo que básicamente hace que la entrada (element2) sea capaz de ser un objetivo (al menos eso pensé) de la función jquery.
Supongo que la función jquery no es "consciente" de este nuevo elemento y debe reiniciarse de alguna manera para ver los nuevos miembros.
¿Es esto cierto? ¿Esto se hace en el momento de añadir el nuevo elemento? Algún tipo de $(x).add(myBehavior)
?
EDITAR
He probado lo siguiente:
$("table.inventoryItems").bind("DOMSubtreeModified", function() {
alert('z');
$( "input.tags" ).autocomplete({
source: availableTags
});
});
y la alerta tampoco se dispara.
¿Algo parece sospechoso?
Gracias
SOLUCIÓN APROPIADA ENLACE EXTERNO
1 Respuestas
1
try DOMSubtreeModified
evento:
$("table").bind("DOMSubtreeModified", function() {
$( "input.tags" ).autocomplete({
source: availableTags
});
});
o puedes usar on()
método basado en cómo crea un nuevo elemento de entrada:
$("table").on("change", "input.tags", function() {
$(this).autocomplete({
source: availableTags
});
});
Respondido 01 Jul 12, 04:07
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas javascript jquery dom or haz tu propia pregunta.
¿Está utilizando el mismo ID en varios elementos? - Joe Friedl
tables
son bestias funky para manipular, especialmente a través de los navegadores. ¿Por qué no estás usando una lista ydata-
atributos para su conjunto de datos? - Jared Farrishsi hay varios
input.tags
- jason mSi modifica y el DOM con jquery, no creo que tenga este problema. - BentOnCoding
@JaredFarrish, ¿puede proporcionar un enlace a los atributos de datos que está mencionando? Gracias. - jason m