【问题标题】:append html but there is no selector to new element追加 html 但新元素没有选择器
【发布时间】:2011-07-31 09:38:59
【问题描述】:

我已经输入了将标签添加到 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不能直播?

【问题讨论】:

  • 由此生成的 html 会是什么样子?

标签: jquery-selectors jquery jquery-append


【解决方案1】:

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

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

然后追加到

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 2016-03-18
        • 2018-09-11
        • 2022-11-21
        • 1970-01-01
        • 2021-07-30
        • 1970-01-01
        • 2013-07-17
        • 2012-05-21
        • 1970-01-01
        相关资源
        最近更新 更多