【发布时间】:2019-02-25 23:52:38
【问题描述】:
我有以下按钮,用于以 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 中获取数据?任何帮助、链接、示例将不胜感激。
【问题讨论】:
-
您的代码中哪里有您的
max计数和测试(if (max = friend_count) {等)? -
另外,你能澄清一下
When ajax_load_profile_friends.php gets to the end, I have a hidden tag that echos on the page的确切含义吗?max元素如何添加到页面中?您可以编辑您的问题并显示该代码吗? -
它来自
ajax_load_profile_friends.php,现在在最后一个查询中以$max = "<input id='max' type='hidden' value='$num_rows'>";echo "$max";回显到页面上,页面上的 html 值显示为 43。 -
所以它只是传递给您的 AJAX 成功处理程序的
data的一部分? -
是的。发布所有代码会使事情复杂化,但它会正确评估,并且是的 get 作为成功处理程序中
data的一部分传递。它仅在最后一个查询中出现在页面上,这是它正常工作的附加指标。它还显示正确的数字。我只是想以某种方式抓住它并hide()按钮。