[英]Different bootstrap behaviour on localhost and development server environment
我正在使用bootstrap 3.0.0和jQuery 1.10.1的模态。
在我的网站的某个点上,我需要在模式中显示一个表单,并且希望该表单像表单向导一样。 为此,我使用formToWizard插件(嗯,它不是插件,但这是我需要的)。
我这样称呼它,因此它适用于最初加载的表单以及模态内部的表单。
$("form.form-steps").formToWizard();
$("#modal").on('shown.bs.modal', function(){
$(this).find("form.form-steps").formToWizard();
});
这在localhost中可以很好地工作 ,但是在生产环境中(我使用Heroku)则不行。
使用Chrome的检查器,我注意到了一些事情:
首先,当我第一次打开模态时,会触发事件,因此上面摘录的第三行中的断点会停止执行。 我可以逐步进行,直到将表单转换为所需的形式 。 但是,从内部函数返回时,我看到在某个时刻(在jquery内部)它被卡住了(就像在无限循环中一样)。
我想如果不一步一步走,这将异步发生,并且错误将在
其次,当我不是逐步进行操作时,而是第一次打开模式并恢复执行时,不对表单进行转换 。 奇怪的是第二次打开模态不再在断点处停止。
为什么这在生产上会有所不同? 因为它是一个前端库,所以我认为我应该以相同的方式工作。
根据要求,我复制了我的应用程序,并删除了登录系统以提供错误示例。 在这里 。
在那里,两个按钮都显示相同的形式。 显示为模态的那个不会将表单转换为向导(也不能正确显示滑块)。 以全视图显示的表单可以正常工作。
如果使用检查器,您会注意到我之前解释的问题。
谢谢你的帮助!
没有实际的示例很难回答这个问题,但是以我的经验,本地主机和生产的主要区别是“竞争条件”和缓存。 您的应用程序下载资源的速度会变慢,如果执行不正确,可能会先运行一些代码。 另外,请确保关闭缓存,以检查您的生产环境,因为它可能未发现新生产代码的所有更改。
请提供指向您的生产环境的链接,也许答案可以在源代码中找到。
我还建议注销被触发的事件。 是多次触发事件还是导致循环的实际“ formToWizard”方法调用。
我也有点困惑,您在事件发生之前和触发时调用“ formToWizard”。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.