2014-08-29 2 views
0

Почему у моей сгенерированной кнопки из jquery нет события?Почему у моей сгенерированной кнопки из jquery нет события?

<input type='button' value='Populate' id='pop'/> 
<input type='button' value='Click' id='btn'/> 
$('#pop').on('click', function(){ 
    var clone = $('input[id*=btn]').clone(); 
    $(this).after(clone); 
}); 

$('#btn').on('click', function(){ 
    alert('clicked'); 
}); 

fiddle

+0

Вам необходимо понять [делегирование событий] (http://learn.jquery.com/events/event-delegation/). –

ответ

0

Вы создаёте клонированную кнопку после Вы использовали приложений для прослушивания. Когда вы клонируете() элемент ТОЛЬКО, структура DOM клонируется, события - нет.

пользователь Либо Event Delegation или просто передать true функции clone(), чтобы он клонировать события также (по the spec)

$('#pop').on('click', function(){ 
    var clone = $('input[id*=btn]').clone(true); // < pass true here 
    $(this).after(clone); 
}); 

DEMO: http://jsfiddle.net/rvhhv8sf/3/

P.S. Идентификатор должен быть уникальным;)

+0

Спасибо за объяснение. он работает сейчас. – Ian

+0

Добро пожаловать;) – Moob

2

Id должен быть уникальным. Так изменил ваш id btn на класс. Используйте event-delegation. Попробуйте это:

$(document).on('click','.btn', function(){ 
    alert('clicked'); 
}); 

DEMO

+0

Спасибо! действительно оценил – Ian

+0

@Ian: Добро пожаловать :) – Unknown

0

Вы копируете идентификаторы, которые не так просто дублировать класс вместо этого.

<input type='button' value='Populate' id='pop'/> 
<input type='button' value='Click' id='btn' class="btn"/> 


$(document).on('click','.btn',function(){ 
    alert('clicked'); 
}); 

Попробуйте это (как на ваш вопрос):

$(document).on('click','#btn',function(){ 
    alert('clicked'); 
}); 

EDIT:

Fiddle ссылка: - http://jsfiddle.net/nLkvejss/

+0

@ Ян .. я думаю, что мой ответ не ошибается нет .. ???? –

0

попробовать это:

$(document).on('click', "#btn", function(){ 
    alert('clicked'); 
}); 
+0

Я думаю, что это было бы более полезно для OP и других посетителей, когда вы добавите некоторое объяснение своей интенции. – reporter

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