JQuery手风琴在文档加载时激活,而不是在点击时激活
JQuery Accordion active on document load instead of on click despite having active false
我正在使用包含嵌套手风琴的JQuery手风琴,当我在纯HTML中使用它们时,它工作得很好。但是在我的例子中,我必须在JQuery中加载嵌套的手风琴,这样可以防止手风琴只有在单击时才被激活。当页面加载时,手风琴已经打开。我也试着把手风琴最后在JS,它仍然没有工作。代码片段:
HTML/ERB:<% @year.each do |y| %>
<div class="accordion" id="years">
<h3 class="ui-accordion-header year"><a href="#"><%= y.date %></a></h3>
</div>
<% end %>
JS:
var months = [];
var loadURL = "stats/show";
$("div.accordion").accordion({
collapsible: true,
active: false,
autoHeight: true,
event: "click"
});
$.getJSON(loadURL, function(data){
//parse data and place in empty arrays
for(var key in data.month){
months.push(data.month[key]);
}
//give each year tab an index number
$('h3.year').each(function(index){
$(this).attr('id', 'ui-accordion-years-header-' + index);
})
for(var i = 0; i < months.length; i++){
//create and append month container to each year tab
$("#ui-accordion-years-header-" + i).after("<div id='months" + i + "' class='months accordion ui-accordion ui-widget ui-helper-reset ui-accordion-content ui-widget-content'></div>");
for (var j = 0; j < months[i].length; j++){
//parse each month of the year and place month tabs in month container
var accordion_month = '<h3 class= "ui-accordion-header ui-helper-reset ui-state-default ui-corner-all" role="tab" id="months_tab' + j + '" aria-controls="ui-accordion-1-panel-0" aria-selected="false" tabindex="0"><a href="#" name=' + months[i][j] + '>' + months[i][j] + '</a></h3>';
$("#months" + i).append(accordion_month);
}
}
}
将accordian放入$.getJSON()
在获取数据之前,您所做的将按顺序添加。
所以accordion是空的
然后,你试着获取数据…
所以accordion不能没有数据。
所以把accordion
放到$.getJSON
语句之后,就可以使用accordion了
初始化手风琴在之后,您成功获取json并附加其中的所有元素。
相关文章:
- 在BoilerplateJS浏览器加载所有脚本(在其他模块中),而不考虑激活的模块
- 关闭在加载时激活,而不是复选框更改
- 在页面加载时激活jQuery/Javascript函数
- 在页面加载时激活jQuery img和文本操作
- 如何激活 bootstrap.tagsinput 用于 DOM 加载后添加的输入
- 如何在 ajax 加载表单上激活 django form.media javascript
- skrollr.js加载后立即激活相对模式
- 加载另一个相同页面时,使用新数据激活第一个网页
- JS 函数在页面重新加载时激活警报
- 如何激活加载图标〔iPad〕
- Javascript-在页面加载时激活onsubmit
- 如何仅在激活颜色框弹出窗口时加载内容
- Ajax延迟加载,手风琴按钮未激活
- 如何激活另一个选项卡后重新加载相同的php文件点击一个按钮
- 激活:当页面加载Javascript时聚焦
- 在热毛巾/Durandal单页应用程序中查看加载(激活)的呼叫功能
- JQuery手风琴在文档加载时激活,而不是在点击时激活
- JQuery加载(url)最初不工作,间隔后激活
- 如何在从外部文件加载时激活jquery函数
- 如何在使用选项卡集加载应用程序时使选项卡激活