0

Wordpress のカスタム投稿タイプ用の AJAX フィルターに取り組んでいます。完全に正常に動作していますが、動作できないことが 1 つあります。本文の script タグから (または、より適切に機能する場合は body onload から) AJAX 関数を実行したいので、ページをロードするときにどのフィルターをオンにするかを関数に伝えることができます。

これは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"); });


    }

loadActiviteiten(cat, type, doel, populair)フィルター ナビゲーションの実行には、jQuery のクリック関数を使用しました。そして、それは完全にうまく機能します。ただし、テンプレートファイルで実行したい場合は、何もしません。

これは私がtemplate.phpで行ったすべてです

<script type="text/javacsript">
$(function() {
  loadActiviteiten();
});
</script>

アイデアは、ユーザーが現在のページを有効にするフィルターを選択し、JavaScript 関数 ex に変換できるカスタム メタ ボックスを作成することです。loadActiviteiten(term-slug,0,0,0);分類法「カテゴリ」の「用語スラッグ」に一致する投稿をロードするだけです。

なぜ実行されないのか本当にわかりません。誰か助けてもらえますか?

わかりました、コンソールにエラーは表示されません。

ありがとう。

4

2 に答える 2

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ファイルをロードした後に関数が呼び出されることを確認してください

于 2013-03-09T18:25:36.040 に答える
0

これを行うために私が見つけた最も簡単な方法はsuccess: function(result) {}、ajax呼び出しに句を追加することです。また、domを操作できるようにするために、これを別の方法で呼び出す必要があります。

$(document).ready(loadActiviteiten);

それ以外の

$(function() {
  loadActiviteiten();
});
于 2013-03-09T15:07:22.673 に答える