【问题标题】: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不能直播?
【问题讨论】:
标签:
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');