2010-11-06 4 views
0

considérer:référence jquery un div inséré

<div id="message"></div> 

Le jquery dit:

var html_to_insert = '<div id="mynewdiv"><input id="myfield" name="myfield" type="text" value="" /></div>' 
$('#message').html(html_to_insert); 

Le résultat HTML est comme prévu:

<div id="message"><div id="mynewdiv"><input id="myfield" name="myfield" type="text" value="" /></div></div> 

Le problème que j'ai est quand je appelez le "myfield" cela ne fonctionne pas:

$('#myfield').change(function(){      
    alert("field changed");      
}); 

Comment puis-je résoudre ce problème?

Je crois que la raison pour laquelle il ne l'appellera pas est parce que le champ n'existe pas lorsque la page rend d'abord, mais je ne suis pas sûr de savoir comment le réparer.

Répondre

2

Première

$('#myfield').change(      
    alert("field changed");      
); 

est invalide. il devrait être:

$('#myfield').change(function(){      
    alert("field changed");      
}); 

mais si vous l'appelez au chargement de la page, vous devriez utiliser live.

$('#myfield').live('change', function(){      
    alert("field changed");      
}); 
+0

Merci, je fixe le changement (fonction .... – Jason

+0

lorsque la page se charge, le #myfield n'existe pas.Il n'existe que lorsque le jquery le met dans le html – Jason

+0

@Jason puis utilisez l'exemple en direct – PetersenDidIt

0

Pour voir si le champ existe faire:

alert($('#myfield').length > 0); 
0

peut aussi simplement ajouter l'événement après l'élém est inséré dans le DOM:


$('#message').html(html_to_insert, function() { 
    $('#myfield').change(function(){      
    alert("field changed");      
    }); 
}); 
Questions connexes