jQuery不使用JS搜索功能

时间:2012-04-21 15:49:03

标签: php javascript jquery live

所以我正在开发一个朋友搜索功能。搜索功能很棒。当您搜索名称时,每个用户都会在单独的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?多数民众赞成在我把文件准备好的功能放在他们身上。仍然没有骰子。

2 个答案:

答案 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(){ });

});