所以我正在开发一个朋友搜索功能。搜索功能很棒。当您搜索名称时,每个用户都会在单独的div中弹出图片和名称以及一个显示" request"的框。现在我想要做的是,当你单击该框运行一些jQuery来请求用户时,但似乎jQuery不能在我的实时加载JS div中工作。
继承我的代码:
$(document).ready(function(){
$('.request').mouseover(function() {
$(this).addClass('select');
});
});
$(document).ready(function(){
$('.request').mouseout(function() {
$(this).removeClass('select');
});
});
$(document).ready(function(){
$('.request.select').click(function() {
var name = $(this).attr('href');
$.ajax({
type: "POST",
url: "requestfriend.php",
data: {'name': name}
});
$(".request.select").load('checkmark.php', function(){ });
});
});
这是用户div的HTML。
echo '
<div class="update miniuser" style="margin: 3px; width: 395px;">
<div><img src="http://myurl.com/' . $FRIENDS[$i] . '/user.png" /></div>
<div style="margin-top: 10px;">' . $FRIENDS[$i] . '</div><div class="request" href="' . $FRIENDS[$i] . '">Request</div>
</div></div>';
添加类不起作用。我相信它是因为它正在装载div?多数民众赞成在我把文件准备好的功能放在他们身上。仍然没有骰子。
答案 0 :(得分:1)
您正在准备好文档时添加mouseover / out事件。您加载的数据直到很久之后才会添加到DOM中。在完成AJAX请求并将内容添加到DOM后,请附加事件。
$('.request').mouseover(function() {
$(this).addClass('select');
});
表示:查找具有类request
的所有元素并添加鼠标悬停功能。处理程序不会神奇地出现在您之后添加的元素。
答案 1 :(得分:1)
我猜你想要.live()
,它将函数添加到具有该选择器的所有元素,动态加载或不。
$('.request.select').live("click", function() {
var name = $(this).attr('href');
$.ajax({
type: "POST",
url: "requestfriend.php",
data: {'name': name}
});
$(".request.select").load('checkmark.php', function(){ });
});