次のコードがあります。
<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 の値を取得して何かをしたい。
Ajax 呼び出し:
$('#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);
}