所以我正在研究朋友搜索功能。搜索功能效果很好。当您搜索名称时,每个用户都会在单独的div 中弹出,其中包含图片和名称以及一个显示"请求"的框。现在我想做的是,当您单击该框时,它将运行一些jQuery来请求用户,但是似乎jQuery在我的实时加载JSdiv中不起作用。
这是我的代码:
$(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 中加载实时?那时我把文档就绪功能放在他们身上。还是没有骰子。
我猜你想要.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(){ });
});
您正在将鼠标悬停/悬停事件添加到文档就绪上。您加载的数据直到很久以后才会添加到 DOM 中。完成 AJAX 请求并将内容添加到 DOM 后,附加事件。
$('.request').mouseover(function() {
$(this).addClass('select');
});
意思是:找到所有带有类request
的元素,并添加一个鼠标悬停功能。处理程序不会神奇地出现在您之后添加的元素上。