2012-08-01 64 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