WordPress で個別ページの記事部分を ajax で取得して任意の場所に挿入するコードを書いたのでメモ。(※ jQuery の内容としては WordPress に特化したものではない)流れとしてはこんな感じ。
- クリックイベントをバインド
- ajax のリクエスト先 URL を初期化
- ajax リクエストを行いページ内容を格納
- ページ全体から目的の部分だけを取得して格納
- 目的の部分をいったん非表示にしてから挿入
- アニメーションで表示
$(document).ready(function () { // クリックイベントをバインド $(".hoge").click(function(){ var url, html, target; // ajax のリクエスト先 URL を初期化 url = $(this).find("a.hoge").attr("href"); // ajax リクエストを行いページ内容を格納 html = $.ajax({ url: url, async: false }).responseText; // ページ全体から目的の部分だけを取得して格納 target = $(html).find(".fuga"); // 目的の部分をいったん非表示にしてから挿入 target.css({display: "none", opacity: "toggle"}); $(this).after(target); // アニメーションで表示 target.animate({height: "show", opacity: "toggle"}); }); });2013-02-27 追記: responseText からそのまま jQuery オブジェクトを生成するような書き方は IE だとダメみたい。(IE9 は動いてる)IE で同じことをやろうと思ったら上のサンプルだと全然だめ。手抜きしすぎ。 なんもないところから jQuery オブジェクトを生成したいときは、
var hoge = $("");じゃなくて、
var hoge = $(document.createElement("div"));こう書く。
0 Comments :
Post a Comment