2012-04-25 3 views
0

Например, у меня есть что-то вроде:JQuery создать элемент и использовать его

<div id="buttons"> 
    <button class="button">Click</button> 
</div> 

<script> 
    $(document).ready(function() { 
     $('.button').click(function() { 
      $('#buttons').append('<button class="button">Click</button>'); 
     }); 
    }); 
</script> 

Когда я нажимаю «Нажмите кнопку», сценарий создаст новую кнопку с «кнопкой» того же класса. Когда я нажимаю эту новую кнопку - ничего не происходит.

Я понимаю, почему, но я не знаю, как этого избежать. Я хочу, чтобы мой скрипт «видел» только что созданная кнопка.

+2

ли вы [искать первый] (http://stackoverflow.com/questions/10084293/how-to-make-live-click-event-on-new -добавлен-дом/10084329 # 10084329)? – neoascetic

+0

Да, я искал, но я не нашел ответа. Сожалею. – imkost

ответ

2

Использование on для связывания с делегированными событий

$("#buttons").on("click", ".button", function() { 
    $('#buttons').append('<button class="button">Click</button>');  
}); 

Пример:http://jsfiddle.net/66H8W/

+0

Ты моя заставка. Большое спасибо – imkost

+0

@imkost: Без проблем, рад помочь. –

1

Хийя демо: http://jsfiddle.net/vcrF3/ ** или http://jsfiddle.net/vcrF3/1/

http://api.jquery.com/on/цитата

события-МАЛО карта, в которой строковые ключи представляют собой один или несколько разделенных пробелами типов событий и дополнительные пространства имен , а значения представляют собой функцию-обработчик для вызова (-ов) событий.

Jquery код

$.fn.ready(function() { 
     $('div').on("click", ".button", function() { 
      $('#buttons').append('<button class="button">Click</button>'); 
      // alert('append button is clicked'); 
     }); 
    }); 
Смежные вопросы