达到最大值时隐藏按钮:jQuery

时间:2019-02-25 23:52:39

标签: php jquery ajax

我有以下按钮,该按钮用于以16为增量查看更多朋友。

<button class="cancel auto-btn hide-btn" id="viewAllFriends" style="display: visible;">View All Friends</button>

它的初始显示是这样的:

var username = '<?php echo $username; ?>';
var num_friends = '<?php echo $num_friends; ?>';
var counter = 8;

$(document).ready(function(){

    <?php if ($num_friends > 8): ?>
    $("viewAllFriends").attr('style', 'display: visible;');

    $("#viewAllFriends").click(function(){
        counter = counter+16;

            $.ajax({

                url:'includes/handlers/ajax_load_profile_friends.php',
                type:'POST',
                data:{'username':username, 'num_friends':num_friends, 'counter':counter},

                    success: function(data) {
                        $('#data_friends').html(data);
                            }
                    });
            });
    <?php else: ?>   
        $("#viewAllFriends").attr('style', 'display: none;');
    <?php endif; ?>
});

如果用户有8个以上的朋友,或者少于8个,则显示该按钮。当ajax_load_profile_friends.php到达结尾时,我有一个隐藏的标记在页面上回显。

$max = "<p id='max' hidden>$num_rows</p>";
echo "$max";

html输出如下:<p id="max" hidden="">43</p>

该隐藏标签直到上一次查询才显示在页面上。我要做的是,当出现43(在此示例中表示没有更多朋友要加载)时,从视图中删除了“查看更多朋友”按钮。

这是我尝试过的:

var friend_count = '<?php echo $num_friends; ?>';
var max = ("max").text();

if (max = friend_count) {
    $("#viewAllFriends").remove();

} 

不幸的是,这不起作用-按钮仍然存在。其他一切都很好,但是最后的细节。我对jQuery的了解不是很好,所以我想知道ajax是否覆盖了该脚本,或者是否可能没有在var max中获取数据?任何帮助,链接,例子,将不胜感激。

2 个答案:

答案 0 :(得分:0)

我可以尝试

$('#viewAllFriends').hide();

http://api.jquery.com/hide/

代替

$(“#viewAllFriends”)。remove();

答案 1 :(得分:0)

解决方案可能是这样的。

首先更新ajax_load_profile_friends.php

$max = "<input id='max' type='hidden' value='".$num_rows."'>";
echo "$max";

然后在您的脚本中

var friend_count = '<?php echo $num_friends; ?>';
var max = $("#max").val();

if (max >= friend_count) {
    $("#viewAllFriends").hide();

}