2012-08-01 59 views
1

我无法解释这个,但它在这里:AJAX Loading in Child Div

我有一个用户点击链接时触发的自定义手风琴脚本。每个页面上都有多个手风琴,每个手风琴都有自己的链接。这个脚本完美地工作,每个链接只打开其正确的手风琴。

现在,我需要修改此脚本以通过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:

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

脚本:基于对的data-target

$("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); 

}); 

回答

1

锚你可以通过他们的名字选择目标div,请尝试以下操作:

var $loadID = $(this).attr("href"); 
var tgt = $(this).data('target') 
$("." + tgt + " .load-description").load($loadID); 
+1

完美,我会尽快接受:) – JacobTheDev 2012-08-01 20:17:06