2013-05-22 4 views
1

Я хочу добавить div с jQuery, а затем использовать функцию jQuery click для класса, который находится внутри добавленного div. Вот мой код, он не работает, если я добавляю div, однако он отлично работает, если div уже существует в html.Функция jQuery не работает над добавленным html

HTML:

<div class="add"> 
    Add item 
</div> 

<div class="container"> 
</div> 

JQuery:

$('.add').click(function(e){ 
    e.preventDefault(); 

    var box = '<div class="box"><div class="remove">x</div></div>' 
    $('.container').append(box) 
}); 


$('.remove').click(function(){ 
    alert("remove"); 
}); 

Демо:

http://jsfiddle.net/Y625A/

ответ

10

Используйте событие делегации

$('.container').on('click','.remove',function(){ 
    alert("remove"); 
}); 

Demo -->http://jsfiddle.net/Y625A/2/

+0

Могу ли я использовать $ ('удалить ') на (' нажмите', функция() { предупреждение («удалить»); }); – PSR

+0

@PSR .. это не будет работать с динамически добавленным '.remove' –

+0

Почему sir.Here также мы используем .on.Can u объяснять PLS – PSR

1

Попробуйте использовать live, чтобы связать события, это будет связывать их, когда будут созданы новые элементы:

$('.add').live('click', function(e){ 

}); 
+1

live лишен – PSR

+0

он не будет работать с последней версией. 1.9.1 –

+0

Я не использовал последнюю версию, это хорошо знать. –

1

Вы должны связать щелчок, даже после создания элемента:.

$('.add').click(function(e){ 
    e.preventDefault(); 

    var box = "<div class='box'><div class='remove'>x</div></div>" 
    $('.container').append(box) 

$('.remove').click(function(){ 
    alert("remove"); 
}); 


}); 

http://jsbin.com/ofoteq/1/edit

+0

Вы можете, но не обязательно, как демонстрирует ответ pXL. – smerny

+2

Я имел в виду вашу формулировку. Кроме того, вы будете иметь несколько привязок, если вы добавите несколько элементов (потому что вы привязываетесь к каждому '.remove' каждый раз, когда он добавляется). Вы должны привязать непосредственно к элементу box, который вы создаете. – smerny

Смежные вопросы