1

我很难解释这一点,但它是这样的:

我有一个自定义手风琴脚本,当用户单击链接时会触发该脚本。每个页面上有多个手风琴,每个都有自己的链接。该脚本完美运行,每个链接仅打开其正确的手风琴。

现在,我需要修改此脚本以通过 AJAX 将内容加载到手风琴内的 div 中。我加载了 AJAX,但不是加载到一个 DIV,而是加载到具有相同类的每个 DIV。我理解它为什么这样做,但我不知道如何将它与现有脚本联系起来。它使用相同的按钮来加载内容,因此应该相当容易。

手风琴脚本使用该data-target属性来指定要打开哪个手风琴,因此应该能够绑定到新脚本,但对于我来说,我无法弄清楚。

这是我到目前为止所拥有的:

HTML 链接:

<a class="button maximize accordionHeading" data-target="firstAccordion" href="/Load/?ID=1">More Info</a>

HTML 格:

<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);

});
4

1 回答 1

1

根据data-target锚点,您可以通过类名选择目标 div,尝试以下操作:

var $loadID = $(this).attr("href");
var tgt = $(this).data('target')
$("." + tgt + " .load-description").load($loadID);
于 2012-08-01T20:13:39.757 回答