在 jQuery 中切换 AJAX 响应
Toggling an AJAX Response in jQuery
所以我调用以下 AJAX 函数,以便在按下相应按钮时拉取和显示特定的分类帖子:
<script>
// Brochure AJAX
function term_ajax_get(termID) {
jQuery("#loading-animation").show();
var ajaxurl = 'http://localhost/kskj-portal/wp-admin/admin-ajax.php';
jQuery.ajax({
type: 'POST',
url: ajaxurl,
data: {"action": "load-filter2", term: termID },
success: function(response) {
jQuery(".brochure-post-container").append(response);
jQuery("#loading-animation").hide();
return false;
}
});
}
</script>
使用 HTML 中的 onclick 属性调用该函数,以便动态更新函数的输入 (termID):
<?php foreach ($products as $product):
// setup the product/cateogory ID
$product_name = $product->name;
$product_id= $product->term_id;
$product_slug = $product->slug;
?>
<div class="product-container OFF" onclick="term_ajax_get(<?php echo $product->term_id; ?>)">
有没有办法切换正在显示的特定帖子?基本上,如果按下按钮,则会显示其相应的帖子。如果再次按下该按钮,帖子将被隐藏。如果按下一个按钮,然后按下另一个按钮,则两个类别帖子将同时显示,直到再次按下其中一个按钮。
现在,每次按下按钮时,它都会将该类别的帖子附加到页面上。我需要在按下时将类别放到页面上,但我不知道再次按下相应的按钮时如何删除它,或者在选择两个按钮时如何添加其他类别。
有很多解决方案。在下面的示例中,您可以只使用元素data
属性,并根据需要,每次通过 ajax 加载新数据,或切换现有元素的可见性(以防止连接)。
将每个 ajax 响应放入一个唯一的元素中(在下面的示例中,每个元素都有其唯一的 data-term-id
属性),以便您以后可以轻松检查元素是否存在。
.PHP:
<div class="product-container OFF" data-term="<?php echo $product->term_id; ?>">blah</div>
Js 脚本:
function term_ajax_get(termID)
{
$("#loading-animation").show();
$.ajax({
type: 'POST',
url: 'http://localhost/kskj-portal/wp-admin/admin-ajax.php',
data:
{
action: "load-filter2",
term: termID
},
success: function(response)
{
$(".brochure-post-container").append('<div data-term-id="'+termID+'">'+response+'</div>');
return $("#loading-animation").hide();
}
});
}
$(".product-container").click(function()
{
var termID = $(this).data("term");
if(!$("[data-term-id='" + termID + "']").length)
{
return term_ajax_get(termID);
}
//OPTION 1.: TO PREVENT UNNECESSARY CONNECTIONS, SWITCH VISIBILITY OF THE ELEMENT IF ALREADY EXIST:
$("[data-term-id='" + termID + "']").toggle();
//OPTION 2.: USE IF YOU NEED TO SHOW FRESH DATA EACH TIME:
//$("[data-term-id='" + termID + "']").remove();
});
相关文章:
- 不再使用innerHTML进行AJAX响应.(代码未得到响应)
- 为什么可以't我使用了AJAX响应的一部分
- Ajax响应转换
- 如何在数据表中设置从Ajax响应选中的复选框
- 在Javascript中的ajax响应之后未调用Dropdown事件
- RubyonRails-Ajax响应的问题
- Ajax:Ajax响应中的链接不起作用
- 如何执行ajax响应返回的javascript函数
- 带有 AJAX 响应或 AJAX 响应的 IF 条件.响应.Text 不起作用
- 正在检查ajax响应中的错误数据
- 如何从ajax响应中重新加载整个页面
- 如何使用jQuery/Ajax响应特定的提交按钮
- 是浏览器在AJAX响应中自动处理的HTTP标头
- Masony无法处理ajax响应
- 使用yii2表单等待ajax响应
- jquery返回ajax响应和用户定义的变量到函数
- 使用Ajax响应更新TextBox
- 如何在jquery ajax响应后设置jquery滑块的起始值
- Rails 4中不执行Ajax响应
- jquery解析ajax响应