所以,我是Javascript的新手。我正在尝试使用纯JavaScript生成Bootstrap 4可折叠组件。我可以整天构建一个静态生成的Bootstrap 4可折叠,工作得很好。当我尝试以动态方式生成一个纯javascript(createElement,setAttribute,appendChild等)时会出现问题。
当我尝试以这种方式创建时,它根本不起作用。我可以点击它,它不会扩展或崩溃,但我可以在开发人员的控制台中发出如下命令,并观察它工作得很好(是的,我知道下面的命令是jQuery,只是想弄清楚发生了什么):
$('.collapse').collapse('toggle')
此外,当我查看我在开发人员控制台中动态创建的页面元素时,它们与我静态创建的工作示例相匹配。
我在网上浏览了几个小时并尝试了几次不同的代码迭代(例如使用.class.add()而不是setAttribute())而不是在任何解决方案中运行。
不,不,我不完全知道我在做什么,但我正在努力学习。我有一些示例代码,说明了我在jsfiddle.net上遇到的问题:
Bootstrap 4 Collapsible Experiment
如果有人能给我一些指示,我会非常感激。感谢。
答案 0 :(得分:0)
您的代码中存在拼写错误。您的目标和折叠元素的ID不同。
我做了什么来跟踪错误(也许下次会帮助你):我把Bootstrap网站的例子放在你的代码之外,它确实有效。所以我知道Bootstrap不是问题的根源。
然后我(在浏览器的检查员中)检查了两个元素以查看它们的不同之处。
当我在你的ID中看到短划线(-
)时,我发现它很奇怪,因为你会避免在Javascript中使用破折号:Javascript and CSS, using dashes。所以,我发现了你的触发器和目标之间的差异。