我有以下代码:
<input class="span7" type="text" id="search" name="search">
<div class="well" id="search-results" style="position: absolute;
top: 208px;
left: 62px;
height: 100px;
width: 340px;
overflow:
auto;">
<ul id="list-results" style="margin: 0; padding:0; top: 0;">
{% include 'search-results.html' %}
</ul>
</div>
当在输入字段中完成键控时,search-result.html 将通过 ajax 显示。一个 ajax 请求会在 ul 中附加一个像这样的元素:
<li id="{{article.id}}"><a id="result-selected" href="#">{{ article.title }}</a></li>
当我使用此功能时(它显示在控制台中):
$('#list-results').click(function(e){
console.log($(this));
});
当我选择其中之一时,它不会:
$('#list-results ul')
$('#list-results > ul')
$('#result-selected')
and more...
这是一个问题,这个 html 是由 ajax 呈现的,但在页面加载时它不是在乞讨?我能做些什么?我想利用显示的 a 的值来做某事。
阿贾克斯调用:
$('#search').keyup(function(){
$.ajax({
type: "POST",
url:"/meal/search/",
data:{
'search_text': $('#search').val(),
'csrfmiddlewaretoken': $('input[name=csrfmiddlewaretoken]').val()
},
success: searchSuccess,
dataType: 'html'
}
);
});
function searchSuccess(data, textStatus, jqXHR){
if ($('#search').val().length < 3){
$('#search-results').hide();
} else {
$('#search-results').show();
}
$('#list-results').html(data);
}