добавить HTML, но нет селектора для нового элемента - PullRequest
0 голосов
/ 07 апреля 2011

У меня есть вход для добавления тега в div ...

и теперь я хочу удалить теги ... но нет селектора для нового тега

$('#filetag').keyup(function (e) {
    var o = $('#filetag'),
        t = $.trim(o[0].value);
    if (e.which == 13 && t) {
        o[0].value = '';
        $('#showtag').append('<img id="delete_tag" title="del" alt="del" class="button8 bdelete" src="/media/images/cleardot.gif">'+t);

    }
});

$('#delete_tag').click(function () {
    console.log('sad');
});

Я знаю, должен использовать вживую, но как и для какого элемента? .append Не можете использовать вживую?

Ответы [ 3 ]

1 голос
/ 07 апреля 2011

Вы можете привязать событие непосредственно к создаваемому элементу:

$('#filetag').keyup(function (e) {
  var o = $('#filetag'),
    t = $.trim(o[0].value);
  if (e.which == 13 && t) {
    o[0].value = '';
    var img = $('<img/>', {
      id: 'delete_tag',
      alt: 'del',
      className: 'button8 bdelete',
      src: '/media/images/cleardot.gif'
    }).click(function () {
      console.log('sad');
    });
    $('#showtag').append(img).append(t);
  }
});
1 голос
/ 07 апреля 2011

Создание объекта jquery и сохранение события вместе с ним.

var img = $('<img></img>').attr({'id':"delete_tag", ../**attr here**/.. })
                          .live( /*live here*/).click(/*or click here*/);

А затем добавить к

$('#showtag').append(img);
0 голосов
/ 07 апреля 2011

2 возможности:

1 / использовать функцию live:

  $('#delete_tag').live('click', function () {
  console.log('sad');
  });

2 / добавить событие щелчка на созданном элементе:

$('<img id="delete_tag" title="del" alt="del" class="button8 bdelete" src="/media/images/cleardot.gif">'+t)
  .click( function {
    console.log('sad');
  })
  .appendTo('#showtag');
...