Javascript Ajax计数器自动加载
我从某个模板中获得了这段代码,它通过单击选项卡将帖子获取到页面中来执行。我只想拥有一份经过编辑的代码副本,通过定时器获取帖子,除了点击标签,我非常感谢对Ajax和JQuery如此陌生的任何帮助Javascript Ajax计数器自动加载,javascript,jquery,ajax,Javascript,Jquery,Ajax,我从某个模板中获得了这段代码,它通过单击选项卡将帖子获取到页面中来执行。我只想拥有一份经过编辑的代码副本,通过定时器获取帖子,除了点击标签,我非常感谢对Ajax和JQuery如此陌生的任何帮助 jQuery(document).ready(function($) { setInterval(function(){ e.preventDefault(); var bt = $(this); var bts = bt.parent().pa
jQuery(document).ready(function($) {
setInterval(function(){
e.preventDefault();
var bt = $(this);
var bts = bt.parent().parent();
var where = $(this).parent().parent().parent().next();
var nbs = bt.parent().parent().data('nbs');
var nop = bt.parent().parent().data('number_of_posts');
cat = bt.data('cat_id');
if (cat === '') {
cat = bt.data('parent_cat');
}
where.parent().find('.show-more').find('.nomoreposts').remove();
jQuery.ajax({
type: "post",
url: nbtabs.url,
dataType: 'html',
data: "action=nbtabs&nonce="+nbtabs.nonce+"&cat="+cat+"&nbs="+nbs+"&number_of_posts="+nop,
cach: false,
beforeSend : function () {
where.parent().append('<i class="nb-load"></i>');
},
success: function(data){
where.hide().html(data).fadeIn('slow');
bts.find('li').removeClass('active');
bt.parent().addClass('active');
where.parent().find('.nb-load').remove();
}
});
}, 5000)
})
jQuery(文档).ready(函数($){
setInterval(函数(){
e、 预防默认值();
var bt=$(本);
var bts=bt.parent().parent();
其中的变量=$(this.parent().parent().parent().next();
var nbs=bt.parent().parent().data('nbs');
var nop=bt.parent();
cat=bt.data(“cat_id”);
如果(类别==''){
cat=bt.data(‘父类’);
}
其中.parent().find('.show more').find('.nomoreposts').remove();
jQuery.ajax({
类型:“post”,
url:nbtabs.url,
数据类型:“html”,
数据:“action=nbtabs&nonce=“+nbtabs.nonce+”&cat=“+cat+”&nbs=“+nbs+”&职位数量=“+nop,
卡赫:错,
beforeSend:函数(){
其中.parent().append(“”);
},
成功:功能(数据){
where.hide().html(data.fadeIn('slow');
bts.find('li').removeClass('active');
bt.parent().addClass('active');
其中.parent().find('.nb load').remove();
}
});
}, 5000)
})
在我们真正帮助您编写代码之前,您必须在某种程度上开始。我们不能只为您编写代码,因为我们不知道您需要更新哪些元素以及如何更新
我只能建议您使用Jquery Ajax方法,这段代码是如何检索url响应的:
jQuery.ajax({
type: "post",
url: "<name of your url or maybe servlet>"
success: function(data){
// data is the response from your url
// in the code sample, data was html that was inserted to an element
}
});
jQuery.ajax({
类型:“post”,
网址:“
成功:功能(数据){
//数据是来自url的响应
//在代码示例中,数据是插入到元素中的html
}
});
您可以将此ajax调用放入函数中并使用
setInterval
。您可以在Jquery.ready()
函数上调用setInterval
。第一个问题是您试图调用Jquery.setInterval
,而不是setInterval
jQuery.setInterval
不是一个函数,因此调用它只会给您一个错误
下一个问题是,您的脚本尝试更改一组元素,使用单击的元素作为起点。这是一种糟糕的做法,因为在这种情况下,更改调用函数的方式会完全破坏脚本。在不知道这一切的情况下:
var bt = $(this);
var bts = bt.parent().parent();
var where = $(this).parent().parent().parent().next();
var nbs = bt.parent().parent().data('nbs');
var nop = bt.parent().parent().data('number_of_posts');
是的,很难给出建议。最安全的方法是将$(this)
替换为jQuery(“.nb标签头li a”)
,但这可能会导致问题,因为$(this)
只引用一个元素,而jQuery(.nb标签头li a”)
可能引用多个元素
实际上,最大的问题是您试图使用的代码a)编写得很糟糕,b)您还不理解。我强烈建议您在认真尝试之前先学习AJAX、事件、DOM和jQuery。当你把你不懂的代码拼凑在一起,而这些代码是你不认识的人写的,你几乎不可能创造出一个好的产品。你能提供一些你目前的进展情况以便于调试吗?谢谢。@MichaelSanchez事实上我的进步不算什么,我在jQuery方法方面经验不足。他尝试了
setInterval
:你可以为弹出窗口编写一个函数,并在延迟后使用setInterval调用它。谢谢你,这真是一个很好的建议,但我认为我的问题很容易解决。。只需将事件从单击更改为计数器。