説明が下手ですが、こんな感じです。
ユーザーがリンクをクリックしたときにトリガーされるカスタム アコーディオン スクリプトがあります。各ページには複数のアコーディオンがあり、それぞれに独自のリンクがあります。このスクリプトは完全に機能し、各リンクは正しいアコーディオンを開くだけです。
ここで、このスクリプトを変更して、コンテンツを AJAX 経由でアコーディオン内の div にロードする必要があります。AJAX をロードしていますが、1 つの DIV にロードするのではなく、同じクラスのすべての DIV にロードしています。これを行う理由は理解できますが、既存のスクリプトと結び付ける方法がわかりません。同じボタンを使用してコンテンツをロードするので、かなり簡単です。
アコーディオン スクリプトはdata-target
属性を使用して開くアコーディオンを指定するため、新しいスクリプトに関連付けることができるはずですが、私の人生ではわかりません。
これが私がこれまでに持っているものです:
HTML リンク:
<a class="button maximize accordionHeading" data-target="firstAccordion" href="/Load/?ID=1">More Info</a>
HTML div:
<div class="accordionHidden firstAccordion">
<div class="row" style="margin-top:10px;">
<div class="six columns">
<img class="load-image" src="images/dirt.jpg" />
</div><!--/.six.columns-->
<div class="six columns load-description">
<!-- this is where the content should be loading -->
</div><!--/.six.columns-->
</div><!--/.row-->
</div><!--/.accordionHidden firstAccordion-->
脚本:
$("a.accordionHeading").bind("click", function(e){
e.preventDefault();
$("."+$(this).data("target")).slideToggle();
$(this).addClass("minimize");
if ($(this).text() == "More Info") {
$(this).text("Less Info");
$(this).removeClass("maximize").addClass("minimize");
} else {
$(this).addClass("maximize").removeClass("minimize").text("More Info");
}
// this is what I'm trying to add.
var $loadID = $(this).attr("href");
$(".load-description").load($loadID);
});