基金会5显示不使用JQuery 3.1.1

问题描述:

使用Chrome 50 & JQuery 3.1.1我试图让基本的基础揭示模式工作。我从Zurb网站上的基本示例中复制了代码,并将其放在我的页面的主体标记中。基金会5显示不使用JQuery 3.1.1

<a href="#" data-reveal-id="myModal" id="test">++</a> 
<div id="myModal" class="reveal-modal" data-reveal aria-labelledby="modalTitle" aria-hidden="true" role="dialog"> 
    <h2 id="modalTitle">Security Details</h2> 
    <p>My message</p> 
    <a class="close-reveal-modal" aria-label="Close">&#215;</a> 
</div> 

而且我已验证所有库正在加载。 我的网页上的最后一块脚本是

<script> 
    $(document).foundation(); 
</script> 

,我知道是工作,因为我使用的工作,其他的基金会元素。

当我点击链接“++”我得到一个错误在我的控制台

Uncaught TypeError: Cannot read property 'defaultView' of null

如果我再在控制台运行

$('#myModal').foundation('reveal', 'open');

揭密对话框显示出来,从此直到我重新加载页面“++”链接也工作。所以我猜在设置点击事件链接不工作的地方,但JQuery的错误信息是没有意义的。

任何想法? (我也使用jQuery迁移库)

+0

是否使用基金会5.5.3? – tymothytym

+0

看起来像5.4.0 –

我觉得你的问题是在jQuery的3(https://jquery.com/upgrade-guide/3.0/#breaking-change-load-unload-and-error-removed)推出了重大的变动,特别是去除.load,因为你正在使用的迁移,你可能意识到在一定程度上图书馆,所以我不会喋喋不休。

移植似乎并不总是适用于旧版Foundation(请参阅此处的问题:https://github.com/zurb/foundation-sites/issues/8975),但为什么这对于几种不同的意见而言更加模糊。

好消息是你有两个修复选项。

修复选项一个

的Zurb建议的修复方法是手动补丁中所有的破引用.load。我无法找到F5的列表,但这里是F6的列表,我猜他们很相似(公共>>https://github.com/zurb/foundation-sites/pull/8923/commits/c0b42643da96d3b297f3d7c35ccdcebed92ad7a1)。这并不是说很多文件,受影响的有:

  • DIST/foundation.js
  • DIST /插件/ foundation.interchange.js
  • DIST /插件/ foundation.util.triggers.js
  • js/foundation.interchange.js
  • js/foundation.util.triggers。js

他们都是同一个问题;使用折旧.load(fn)

如果你感到非常大胆,你可以只全局替换的所有实例:

.load(function() {

.on("load", function() {

修复选项2

我们e jQuery Migrate的1.4.1版本。我不完全确定为什么1.4.1在更高版本不支持的情况下工作(或者为什么他们完全跳过版本2),但它确实起作用,所以这可能是一个足够好的开始。 (3.0.0 & 3.0.1-rc都会产生错误,这在尝试让jQuery 3正常工作时似乎有点违反直觉)。

以F 5.5.3工作,JQ 3.1.1 & JQM 1.4.1 >>https://jsfiddle.net/tymothytym/fxbk6h1d/

+0

选项2应该是正确的答案。谢谢! – facundofarias