0

我输入了将标签添加到 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');
});

我知道必须使用 live 但是如何以及为哪个元素?.append不能用live?

4

3 回答 3

1

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

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

然后追加到

$('#showtag').append(img);
于 2011-04-07T05:55:27.160 回答
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);
  }
});
于 2011-04-07T06:00:09.123 回答
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');
于 2011-04-07T06:03:31.067 回答