我正在为Wordpress中的自定义帖子类型开发AJAX过滤器。它工作得非常好但是我有一件事我无法工作。我想从正文中的脚本标记执行AJAX函数(或者如果更好的话,从body onload执行),这样我就可以告诉函数在加载页面时打开哪些过滤器。
这是加载AJAX的功能
// ajaxLoop.js
jQuery(function($){
var loading = true;
var $window = $(window);
var $content = $("body #filterAanbod");
// ajax inladen, afhankelijk van categorie, onderwijs type en kerndoel.
function loadActiviteiten(cat, type, doel, populair){
$.ajax({
type : "GET",
data : {categorie : cat, type : type, kerndoel : doel, pop: populair},
dataType : "html",
url : "loopHandler.php",
beforeSend : function() {
$content.fadeOut(100);
$content.append(
'<img src="images/ajax-loader.gif" />'
);
}
})
.done(function(data) {
$content.hide();
$content.html(data);
$content.fadeIn(500, function() {
loading = false;
$("#temp_load").remove();
});
})
.fail(function() { $("#temp_load").remove(); alert("failed miserably"); });
}
我使用jQuery点击功能为过滤器导航执行loadActiviteiten(cat, type, doel, populair)
。这完全没问题。但是,当我想在模板文件中执行它时,它什么都不做。
这就是我在template.php中所做的一切
<script type="text/javacsript">
$(function() {
loadActiviteiten();
});
</script>
我们的想法是创建一个自定义元框,用户可以选择哪些过滤器打开当前页面并转换为javascript函数ex。 loadActiviteiten(term-slug,0,0,0);
只需加载与分类“类别”的“term-slug”匹配的帖子。
我真的不明白为什么它没有执行,有人可以帮助我吗?
oo fyi,我的控制台没有出现任何错误。
感谢。
答案 0 :(得分:1)
你可以这样做:
步骤1:首先加载jquery库。
第2步:加载ajaxLoop.js:
<script src="ajaxLoop.js"></script>
<强> ajaxLoop.js 强>
function loadActiviteiten(cat, type, doel, populair){
var loading = true;
var $window = $(window);
var $content = $("body #filterAanbod");
// ajax inladen, afhankelijk van categorie, onderwijs type en kerndoel.
$.ajax({
type : "GET",
data : {categorie : cat, type : type, kerndoel : doel, pop: populair},
dataType : "html",
url : "loopHandler.php",
beforeSend : function() {
$content.fadeOut(100);
$content.append(
'<img src="images/ajax-loader.gif" />'
);
}
})
.done(function(data) {
$content.hide();
$content.html(data);
$content.fadeIn(500, function() {
loading = false;
$("#temp_load").remove();
});
})
.fail(function() { $("#temp_load").remove(); alert("failed miserably"); });
}
步骤3:
现在你的功能是一个全局功能。
所以你可以这样称呼它:
<script type="text/javascript">
jQuery(document).ready(function($){
loadActiviteiten(cat, type, doel, populair);
});
</script>
只需确保在加载ajaxLoop.js文件后调用您的函数
答案 1 :(得分:0)
我发现这样做的最简单方法是在ajax调用中添加success: function(result) {}
子句。此外,您应该以不同的方式调用它,以确保dom已准备好进行操作。
$(document).ready(loadActiviteiten);
而不是
$(function() {
loadActiviteiten();
});