2013-01-24 3 views
4

Je veux après avoir cliqué sur le lien append html case à cocher d'entrée dans une classe, après avoir cliqué sur la case à cocher d'entrée obtenir alerte is checked.Alerte après cocher la case à cocher

J'ai essayé code suivant, mais ne fonctionnent pas pour moi:

DEMO:http://jsfiddle.net/HsveE/

HTML

<a href="#" id="ho">Click Me</a> 
<div class="hi"></div> 

jQuery

$('#ho').on('click', function(e){ 
    e.preventDefault(); 
    $('.hi').append('<input type="checkbox" id="isAgeSelected"/>'); 
}) 
$(".hi input[type=checkbox]").on('click',function() { 
    alert('is checked') 
}) 

Comment résoudre ce problème?

+1

... ou se lier après append –

Répondre

2

Vous devez déléguer depuis votre élément n'existe pas au moment de la liaison - ou la liaison après élément n'existe

$(".hi").on('click',"input[type=checkbox]",function() { 
    alert('is checked') 
}) 

http://jsfiddle.net/5dYwG/

Faire cela lie le gestionnaire d'événements à vos éléments/éléments avec class = hi - puisqu'il existe au moment où dom est prêt et est l'élément auquel vous ajoutez vos cases à cocher. Il écoutera alors l'événement à mesure qu'il surgit de vos cases à cocher et les manipule. Une autre chose est de toujours envelopper votre liaison dans une fonction document.ready afin qu'elle attende que votre dom soit chargé avant d'essayer de lier les gestionnaires d'événements.

$(function(){ 
    // your binding code here 
}) 

EDIT

$(".hi").on('click',"input[type=checkbox]",function() { 
    if(this.checked){ 
    alert('is checked') 
    } 
}) 

FIDDLE

+0

Avec cette fonction, l'alerte est émission lorsque l'entrée est décoché ... –

+0

parce que vous avertissez chaque fois qu'il est cliqué .. Si vous voulez seulement qu'il alerte quand il est coché, alors vous avez besoin d'une instruction if –

0

Utilisez cette ...

$(".hi").on('click',"input[type=checkbox]",function() { 
    if($(this).is(':checked')){ 
     alert('is checked'); 
    } 
}) 

Salutations.

0

Voici la solution.

$('#ho').on('click', function(e){ 
    e.preventDefault(); 
    $('.hi').append('<input type="checkbox" id="isAgeSelected"/>'); 
}); 
$(".hi").on('click', '#isAgeSelected', function() { 
    alert('is checked = ' + this.checked) 
}); 

violon Aussi, si vous voulez essayer http://jsfiddle.net/greenrobo/3Rugn/

délégation