我有一個加載大量數據的jquery手風琴。這個手風琴是通過查詢數據庫生成的。我的問題 - 是否有方法在手風琴的特定元素被點擊之前不加載內容?基本上,我想複製jquery tab ajax內容加載到手風琴的功能。如何通過AJAX加載JQuery Accordion中的內容
3
A
回答
2
我使用jQuery UI的-1.11.4和有同樣的問題。這是我拼湊在一起的解決方案。
的JavaScript:
var already_loaded = new Object(); // used to track which accordions have already been loaded
$(function() {
$("#accordion").accordion({
collapsible: true,
active: false,
//heightStyle: 'fill', // http://jqueryui.com/accordion/#fillspace -- Just sets the height of the accordion to the height of it's parent container. We need a way to change the height of the parent to that of the newly added content.
activate: function (e, ui) {
// only fire when the accordion is opening..
if(ui.newHeader.length>0){
// only retrieve the remote content once..
if(! already_loaded[ui.newHeader[0].id]==1){
var srcObj = $(ui.newHeader[0]).children('a');
var url = srcObj.attr('href');
var folder = srcObj.attr('data-folder');
//$.get(url, function (data){ // if you wanted to use the GET method uncomment this and comment the next line. Be sure to add any needed query string parameters to the URL.
$.post(url, {doCmd:'getFolderFiles', folder:srcObj.attr('data-folder')}, function (data){
$(ui.newHeader[0]).next().html(data);
var contentDiv = $(ui.newHeader[0]).next()[0];
$('#'+contentDiv.id).height(contentDiv.scrollHeight);
//$("#accordion").accordion("refresh"); // http://api.jqueryui.com/accordion/#method-refresh -- The documentation isn't clear on this but this only refreshes added/removed panels. Does not refresh existing panels with newly added content.
already_loaded[ui.newHeader[0].id]=1; // keep track of the loaded accordions
});
}
}
}
});
});
的HTML:
<div id="accordion">
<h3><a href="program_to_generate_accordion_content.php" data-folder="2015">2015 Files</a></h3>
<div>
<p>
Loading... Please wait.
</p>
</div>
<h3><a href="program_to_generate_accordion_content.php" data-folder="2016">2016 Files</a></h3>
<div>
<p>
Loading... Please wait.
</p>
</div>
</div>
0
難道你不能只綁定一個處理程序的「改變」事件?
6
檢查出this question和this blog entry,它可能會指出你在正確的方向。
1
相關問題
- 1. 通過jquery或ajax加載內容
- 2. 加載內容的jQuery AJAX
- 3. 通過ajax從通過ajax加載的頁面獲取內容
- 4. 通過AJAX從通過ajax加載的頁面加載特定的html內容
- 5. HTTPWebRequest等待內容加載通過Ajax
- 6. 通過ajax加載facebook內容
- 7. 通過ajax提交textarea,並通過ajax動態加載內容
- 8. 通過動態生成的按鈕加載jQuery Ajax的內容
- 9. 用jQuery/Ajax加載內容
- 10. jquery Ajax內容未加載
- 11. ajax和jquery加載內容
- 12. jquery ajax內容未加載
- 13. jQuery的訪問內容通過ajax調用加載
- 14. 通過Ajax加載的jQuery動態內容
- 15. jQuery Mobile預取通過Ajax加載內容的頁面
- 16. jquery選擇器不工作通過ajax加載的內容
- 17. jQuery的localtime插件在通過ajax加載內容時失敗
- 18. 如何通過AJAX獲取加載內容的CSS和腳本
- 19. 通過jquery load()重新加載內容;
- 20. 通過jQuery加載HTML內容
- 21. 通過AJAX加載jQuery插件RhinoSlider內容
- 22. 內容通過AJAX加載後,jQuery不起作用
- 23. jquery通過ajax加載內容後不工作
- 24. 在php輸出完成後通過jquery ajax加載內容
- 25. 通過Ajax加載內容後,Jquery不起作用
- 26. jQuery Mobile通過Ajax加載內容在頁面顯示之前
- 27. jQuery手機單頁模板通過ajax加載內容
- 28. jQuery:可以通過ajax加載內容更新DOM嗎?
- 29. 如何檢測DIV高度它的內容是通過AJAX加載使用jQuery
- 30. 通過jQuery加載javascript ajax
上面的鏈接不再在jQuery UI的工作1.9+。只是想讓人們知道,這是我在Google上的第一個結果。 – mawburn 2014-06-26 14:52:26
謝謝!從SO問題查看[這個答案](http://stackoverflow.com/a/15573363/145346):「自從jQuery UI 1.9事件'change'和'changestart'已被改爲'activate'和'beforeActivate '分別「 – Mottie 2014-06-26 15:26:24