附加html但新元素没有选择器

时间:2011-04-07 05:52:23

标签: jquery-selectors jquery jquery-append

我输入了为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 个答案:

答案 0 :(得分:1)

创建jquery对象,并用它存储事件。

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

然后追加

$('#showtag').append(img);

答案 1 :(得分:1)

您可以将事件直接绑定到您创建的元素:

$('#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);
  }
});

答案 2 :(得分:0)

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');