这里的第一个问题!我正在尝试创建一个邮件系统,现在正在设置接收器列表。我将用户的名称添加到范围,并希望通过单击名称来删除用户。
<span id="to"></span>
我的剧本:
$("#auto").autocomplete($("#base_uri").val()+'search',{
req_type: "POST",
minChars: 1,
delay: 200
}).result(function(event, data, formatted) {
if($("#to").html() == ''){
$("#to").prepend('<span id="'+data[1]+'">'+formatted+'</span>');
}
else {
$("#to").prepend('<span id="'+data[1]+'">'+formatted+', '+'</span>');
}
$("#fake_to").val($("#fake_to").val()+ data[1] +', ');
$("#auto").val('');
});
$("#to span").click(function(){
$(this).hide();
});
data [1]并格式化为包含名称的字符串。
我认为这种方法会添加可以通过单击隐藏的跨距。不知何故情况并非如此。单击添加范围中的文本时不会隐藏..
非常感谢帮助! =)
答案 0 :(得分:2)
这应该有效:
$("#to").delegate('span', 'click', function() {
$(this).hide();
});
我建议使用.delegate()
而不是.live()
,因为您可以指定侦听事件附加到的上下文,其中.live()
将事件附加到文档本身。
答案 1 :(得分:0)
您需要更改:
$("#to span").click(function(){
$(this).hide();
});
到:
$("#to span").live('click',function(){
$(this).hide();
});
.click
绑定仅绑定执行代码时存在的跨度。 .live
也适用于将来创建的任何实例。