iframeに似た同じページでいくつかのdivを作ってみたいと思います。それぞれはリンクを含むURLを読み込みます。これらのリンクをクリックすると、AJAXリクエストが出て、クリックされたリンクのページからdivのhtmlを新しいhtmlに置き換えてほしいという要求があります。これは、iframe内のページをサーフィンすることと非常によく似ています。jqueryの作成を助けてくださいAJAXed divsのリンクはiframeのように動作します
ここが最初のdivをロードするための私のコードは、(このコードは動作します)です:
のonload:
$.ajax({
url: "http://www.foo.com/videos.php",
cache: false,
success: function(html){
$("#HowToVideos").replaceWith(html);
}
});
$.ajax({
url: "http://www.foo.com/projects.php",
cache: false,
success: function(html){
$("#HowToProjects").replaceWith(html);
}
});
これは私が実装する方法はかなりわからないコードのサンプルですが、説明しますコンセプト。私はいくつかのセレクター(?のサラウンド)のいくつかの助けを得ることができますか、またはこれを行う正しい方法は何かを教えてください?私はまた、関数を配置する適切な場所がどこにあるのかを知る必要のあるローディングアイコンを表示したいと思います。
$(".ajaxarea a").click(function(){
var linksURL = this.href; //
var ParentingAjaxArea = $(this).closest(".ajaxarea");;
$.ajax({
url: linksURL,
cache: false,
success: function(html){
$(ParentingAjaxArea).replaceWith(html);
}
});
return false;
});
$(".ajaxarea").ajaxStart(function(){
// show loading icon
});
感謝!私はまた、私がParentingAjaxAreaのために使用したいものであるために "closest()"を見つけました。この方法でHTML構造は何でもかまいません。 "$(this)"の代わりに "this"を使用してもよろしいですか?たとえば、上記の編集を参照してください。 – Dave
@Dave:あなたは正しい、この場合最も近い方が良いです、私は私の答えを更新します。 –
@Dave:jQueryコールで 'this'をラップする必要があります。なぜなら、イベントハンドラ内の' this'は、ハンドラが呼び出された要素を参照するだけで、jQueryオブジェクトではないからです。 –