我正在尝试记录对异步生成的锚点的点击。
异步调用——效果很好——看起来像这样:
$("#txt_search").keyup(function() {
var search = $("#txt_search").val();
if (search.length > 0)
{
$.ajax({
type: "post",
url: "<?php echo site_url ('members/searchmember') ;?>",
data:'search=' + search,
success: function(msg){
$('#search_results').html("");
var obj = JSON.parse(msg);
if (obj.length > 0)
{
try
{
var items=[];
$.each(obj, function(i,val){
items.push($('<li class="search_result" />').html(
'<img src="<?php echo base_url(); ?>' + val.userImage + ' " /><a class="user_name" href="" rel="' + val.userId + '">'
+ val.userFirstName + ' ' + val.userLastName
+ ' (' + val.userEmail + ')</a>'
)
);
});
$('#search_results').append.apply($('#search_results'), items);
}
catch(e)
{
alert(e);
}
}
else
{
$('#search_results').html($('<li/>').text('This user does not have an account yet'));
}
},
error: function(){
alert('The connection is lost');
}
});
}
});
我想要到达的锚点是<a class="user_name" href="" rel="' + val.userId + '">' + val.userFirstName + ' ' + val.userLastName + ' (' + val.userEmail + ')</a>'
我使用此功能检测对这些锚点的点击:
// click op search results
$("a.user_name").on('click', function(e) {
e.preventDefault();
});
问题似乎preventDefault
是没有做任何事情......我已经在 Stackoverflow 上查看了大多数涉及此问题的问题,并检查了 jQuery 自己关于该主题的文档,但我似乎无法找到问题所在。我尝试async: false
在 AJAX 调用中添加一条语句,因为异步调用可能是问题所在,但这并没有解决问题。