0

-

Ajax 呼び出し後に Javascript を動作させるにはどうすればよいですか?

自分のページ (ワードプレス) - スタートページにすべての投稿があります。ユーザーが特定のものの後に投稿をフィルタリングできるフィルターシステムを構築しました-「最新、最も閲覧された、強調表示された」など

このフィルターを機能させるために、以下の関数を使用します。

 <script type="text/javascript">
    $(document).ready(function(){
    $.ajaxSetup({cache:false});
    $("#new").click(function(){

        var post_id = $(this).attr("rel")
        $(".postbox_wrapper").html('<span class="filter_posts">
<img src="<?php bloginfo ('template_directory'); ?>/images/287.gif"></span>');
        $(".postbox_wrapper").load(jQuery(this).attr("href") + " .postbox_wrapper")
        return false;
    });
});

訪問者が「新規」ボタンをクリックすると、投稿がフィルタリングされ、最新の投稿のみが表示されます。しかし、私は Javascript を使用して、disqus、遅延画像ローダーなどの投稿数を取得しています。これらの JS ファイルは、フィルタリングされた投稿には読み込まれません。(タクソノミー.php)

これは、たとえば JS ファイルです。これは、フィルタリングされた投稿で遅延ローダーを使用できるようにするために必要です。

http://myurl/../plugins/bj-lazy-load/js/bjll.min.js?ver=0.4.0

問題は、上記の関数で、新しくロードされた「フィルタリングされた」ページでも JS スクリプトを使用するようにするにはどうすればよいかということです。

これは少し似ています: Jquery で Ajax() 関数を使用して、外部ページの一部を div にロードします

しかし、私はそれを機能させませんでした....

どうもありがとう!

4

1 に答える 1

0

あなたの質問を理解しているかどうかわかりません。div に特定のコンテンツをロードした後にスクリプトをロードしようとしていますか?

これを試してください:

$(function(){
    $.ajaxSetup({cache:false});

    $("#new").click(function(){
        var $this = $(this);
        var $PostboxWrapper = $(".postbox_wrapper");

        var post_id = $this.attr("rel")

        //I think you want load something like a loading .gif in taht point. Right?
        $PostboxWrapper.html(
            "<span class='filter_posts'>" + 
            "   <img src='<?php bloginfo ('template_directory'); ?>/images/287.gif'>" +
            "</span>"
        );

        $(".postbox_wrapper").load(jQuery(this).attr("href"), function()
        {
            $.getScript(
                "http://yourUrl/../plugins/bj-lazy-load/js/bjll.min.js?ver=0.4.0",
                function(data, textStatus, jqxhr) {
                    console.log('Load was performed.');
                }
            );
        })
        return false;
    });
});
于 2012-07-21T13:36:11.580 に答える