jqueryを使用してhtmlデータを見つけて置き換えようとしています。jquery スクリプトは、1 つの div コンテナーから html データを取得し、それを新しいデータに置き換えているという事実で機能しています。問題はリロード時にあり、コンテナ クラスが複製され、次の div の計算に必要な masonry-brick クラスが追加されません。
JQuery は次のとおりです。
$("div.more a").on("click", function (event) {
event.preventDefault();
// get the contents
$.get(this.href, function (response) {
// jquerify the response HTML string and find our replaceable area
var result = $(response).find('.l-home-grid');
// do the replace
$('.l-home-grid').html(result);
});
// Revert all to original state
$("a.active")
.removeClass("active")
.addClass("static");
// Set classes to clicked anchor
$(this)
.removeClass("static")
.addClass("active");
window.location.hash = $(this).text();
});
これはhtmlになります:
<div class="mobile-padding l-home-grid masonry" style="position: relative; height: 2660px; ">
<div class="mobile-padding l-home-grid">
<div class="gridCells"><a href="#">
<h4>Things</h4>
<img width="256" height="182" src="foo.jpg"> </a></div>
<div class="gridCells"><a href="#">
<h4>More Things</h4>
<img width="256" height="182" src="foo.jpg"> </a></div>
<div class="gridCells"><a href="#">
<h4>Objects</h4>
<img width="256" height="182" src="foo.jpg" > </a></div>
</div>
</div>
なぜ
<div class="mobile-padding l-home-grid masonry" style="position: relative; height: 2660px; ">
<div class="mobile-padding l-home-grid">
二回ロード?
目標はこれです:
<div class="mobile-padding l-home-grid masonry" style="position: relative; height: 2660px; ">
<div class="gridCells masonry-brick"><a href="#">
<h4>Things</h4>
<img width="256" height="182" src="foo.jpg"> </a></div>
...