JQuery доступ к динамически создаваемым объектам - PullRequest
0 голосов
/ 05 октября 2009

Как я могу получить объекты (div), которые были сгенерированы динамически. Я имею в виду DIVS, которых не было в выводе при запуске $(document).ready(function().

Если я это сделаю:

$('#click_me').click(function() {
    $('#container').append('<div id="clicker2">can you click on me?</div>');
});

$('#clicker2').click(function() {
    alert('hurray, it works');
});

clicker2 не будет работать

Как я могу это исправить? Я намерен создать более одного динамически. и я хочу назначить им действия Jquery.

Ответы [ 3 ]

3 голосов
/ 05 октября 2009

.click () функции, которые не работают на span или div, которые добавляются позже, вам нужно использовать .live ()

$("#clicker2").live("click", function(){
  # do stuff to spans currently existing
  # and those that will exist in the future
});
1 голос
/ 05 октября 2009

Создайте div div и соберите его атрибуты и события, прежде чем добавлять его.

var $div = $('<div />').append('can you click on me?').attr('id', 'clicker2').click(function() {
alert('hurray, it works');
});
$('#container').append($div);
0 голосов
/ 05 октября 2009

Просто поместите привязку клика в функцию первого клика:

$('#click_me').click(function() 
{
    $('#container').append('<div id="clicker2">can you click on me?</div>');
    $('#clicker2').click(function(){  alert('hurray, it works');   });
});

Если у вас есть, вызывается привязка, но нет «div # clicker2» для привязки ко второй функции.

Надеюсь, это поможет.

...