我从某个模板中获取了此代码,通过单击选项卡将其添加到页面中来执行该代码。我想要的只是拥有此代码的编辑副本,以便通过计时器获取帖子,而不是单击选项卡。 I have tried the setInterval
but it didn't work,感谢我对Ajax和JQuery这么新的任何帮助。
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)
})
答案 0 :(得分:1)
在我们能真正帮助您进行编码之前,您必须先开始某种程度的学习。我们不能只为您编写代码,因为我们不知道您想要更新哪些元素以及如何更新。
我只能告诉你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
}
});
您可以将此ajax调用放入函数中并使用setInterval
。您可以在setInterval
功能上发出Jquery.ready()
来电。
答案 1 :(得分:1)
您的第一个问题是,您尝试拨打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-tabbed-head li a")
,但这可能会导致问题,因为$(this)
只引用一个元素,而jQuery(".nb-tabbed-head li a")
可能引用多个元素。
真正最大的问题是您尝试使用的代码a)写得不好b)您还不了解。在你认真尝试之前,我强烈建议你学习一下AJAX,事件,DOM和jQuery。当你把你不了解的代码片段粘在一起时,你几乎不可能创造一个好的产品。