基金会手风琴如果未在 HTML 中声明,则不加载
Foundation Accordion not loading if not declared in HTML
我对JS相当陌生,我以为我理解页面组件的加载顺序,但这让我感到困惑。
我正在使用基础 5,我正在使用手风琴组件.在我的js脚本中,我加载数据并将其放入手风琴中,然后成为mainContainerdiv的内部html。
<link rel="stylesheet" href="css/foundation.complete.css">
<link rel="stylesheet" href="css/normalize.css">
<link rel="stylesheet" type="text/css" href="css/myCss.css" />
<script src="js/vendor/modernizr.js"></script>
<script src="js/app.js"></script>
<script src="js/vendor/jquery.js"></script>
<body onload="iniciarPg()">
<div id="principal" class="mainContainer">
<dl class="accordion" data-accordion > </dl>
</div>
function iniciarPg()
{
$(document).foundation({
accordion: { toggleable: true }
});
loadData();
}
</script>
<!--SCRIPTS -->
<script src="js/classie.js"></script>
<script src="js/foundation.min.js"/>
<script src="js/foundation/foundation.accordion.js"/>
</body>
我无法理解的部分是,尽管 mainContainer 的所有内部 HTML 都被替换了,但如果我从我的 html 中删除<dl class="accordion" data-accordion > </dl>
,那么当 JS 加载时,页面不会正确显示手风琴,单击时它不会展开。
你需要
reflow
你的基础插件,因为数据稍后通过ajax。
function iniciarPg()
{
$(document).foundation({
accordion: { toggleable: true }
});
loadData();
//make sure the ajax has been finished and the HTML is properly set, otherwise move following line to you ajax success handler end.
$(document).foundation('reflow');
}
</script>
相关文章:
- 如何使用url加载程序在webpack中导入多个图像
- 如何在生成下载文件时显示加载动画
- 有没有任何方法可以将控制器从文件加载到ui路由器$stateProvider中
- 无法在通过jQuery的ajax加载的页面中执行javascript
- Emberjs应用程序加载在除Index之外的所有路由上
- 在chrome.tabs.onCreated之后加载HTML页面
- 单击F5时如何停止页面加载
- 以纯文本加载的脚本-未声明纯文本文档的字符编码
- 如何为将通过AJAX加载的元素声明事件处理程序
- 基金会手风琴如果未在 HTML 中声明,则不加载
- 如果已经声明了宽度,则在页面加载后更改图像宽度?如果未声明宽度,则宽度将更改,但如果像我一样声明,则不会更改
- 如何从加载的 JavaScript 文件中访问在 yepnope.js 中声明的变量
- JavaScript 声明的函数在脚本加载时消耗多少内存
- 如何在requirejs中声明一个模块已经被同步加载
- Angular UI Router只加载第一个声明的子状态
- Webresource文件不能正确加载,抛出404错误,然后声明javascript文件没有在下面定义
- 如何运行在C#中声明的html主体和在C#中宣布的JavaScript的加载
- 保留“;高度“;Ajax调用后jQuery中的声明(下拉选择加载产品数据,重置其他页面元素的高度)
- PHP无法使用jquery load()访问加载的PHP页面中声明的变量
- 为什么在外部源文件中声明时对象文本会加载,而在包含外部 javascript 文件文件的文件中调用时不会加载