2013-09-04 2 views
1

Я создал простой код, но кажется, что делегирование .on не работает? Пожалуйста помоги?jQuery .on делегат не работает

HTML:

<input type="button" value="Click Me!" id="button0" class=".button" /> 
<br/><input type="button" value="Add" id="add_button" /> 
<script> 
    var idx = 1; 
    $(document).ready(function(){ 
     $(document.body).on('click',".button",function(){ 
      alert(this.id); 
     }); 
     $('#add_button').on('click',function(){ 
      $('<input type="button" value="Click Me!" class=".button" />') 
       .attr('id','button' + idx++) 
       .insertBefore($(this).prev()); 
     }); 
    }); 
</script> 

"Click Me!" кнопка должна предупредить атрибут ID кнопки, а кнопка добавления должна добавить еще один «Click Me!». с другим значением атрибута ID. http://jsfiddle.net/SrwrK/

Пожалуйста, обратите внимание, что я пытаюсь использовать обходной путь с помощью метода .live() jQuery, поскольку он устарел и удален из версии 1.9.

+1

кнопка не имеет класса 'button', он имеет класс' .button', который будет представлен селектором '.. \\. button''. – zzzzBov

ответ

3
<input type="button" value="Click Me!" id="button0" class=".button" /> 

Этот код неверный - удалите "." от класса кнопок. Classnames получают только «.». в CSS-селекторах, например, в файле CSS или в инструкции селектора jQuery.

<input type="button" value="Click Me!" id="button0" class="button" /> 

Это будет работать. Кнопка вы создаете с JQuery имеет те же проблемы, так, чтобы она выглядела так:

$('<input type="button" value="Click Me!" class="button" />') 

Можно даже упростить это немного больше, как это:

$('<input type="button" value="Click Me!" class="button" id="button' + idx++ + '" />') 

Это позволит вам пропустить. attr().

Вот рабочий JSfiddle: "Click Me" http://jsfiddle.net/SrwrK/1/

+0

ОК, который исправил его, но событие щелчка добавленных кнопок также должно реализовать одно и то же событие справа? но это не – gptimajo

+0

Я обновил свой ответ. У вас такая же проблема в кнопке, которую вы создаете в jQuery. Класс '.button' упоминается как' button' в HTML, как статический, так и сгенерированный. –

+0

спасибо! что исправил это .. не видел этого, мой плохой. – gptimajo

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