首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果从带有data-tooltip和HTML注释的Knockout自定义绑定中调用Foundation Reflow,则会导致错误

如果从带有data-tooltip和HTML注释的Knockout自定义绑定中调用Foundation Reflow,则会导致错误
EN

Stack Overflow用户
提问于 2014-04-30 04:42:42
回答 2查看 839关注 0票数 1

伴随着问题的再现而出现的jsFiddle:http://jsfiddle.net/ComradeF/M9e94/

我在一个项目中同时使用Foundation和Knockout。我面临的一个挑战是,当需要呈现新的tabs时,Knockout会照办,但单击选项卡不会做任何事情。解决方案是在自定义绑定中调用$(document).foundation('reflow')。不幸的是,该解决方案可能不够充分,也可能是完全错误的,因为它现在与我收到的错误相关联。

我试图通过标记中的data-tooltip属性将tooltips添加到选项卡和其中的一些内容中,但在jQuery 2.1.0的1422行得到了错误。这一行是elem.getAttribute( name ),错误是undefined is not a function。在这种情况下,elem是一个注释,因此没有getAttribute()函数。

可以通过删除标记中的注释(<!-- this is a comment -->)或删除选项卡链接中的data-tooltip属性来消除该错误。

我意识到最快的解决办法是从我的标记中删除HTML注释,但我觉得这可能是潜伏着更糟糕的事情的症状……因此,我更喜欢调查和解决,而不是采取简单的方法。

EN

回答 2

Stack Overflow用户

发布于 2015-02-05 21:22:05

我也遇到过同样的问题(除了我正在做一个Angular js项目)。

我还没能找到一个解决方案,但我找到了一个变通的办法。如果谁知道一个好的解决方案,请让我知道。

我的工作是缩小$(document).foundation('reflow');的范围,避免任何html注释元素(不幸的是,这在Angular js应用程序中是必要的,也是很常见的)。

票数 1
EN

Stack Overflow用户

发布于 2015-06-04 16:29:19

我试着用sacumminis's解决方案来解决这个问题--它移除了异常,但也让我的工具提示停止了工作。

然而,这是一个由Ayush Gupta提出的解决方案,它工作得很好。我使用的是Angular而不是Knockout,所以我只是把它放在app.js文件的前面。您需要做的是在应用程序代码的早期添加这段代码:

代码语言:javascript
复制
Object.getPrototypeOf(document.createComment('')).getAttribute = function() {}

现在错误消失了,工具提示工作得很好。希望这能帮助到别人。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23374860

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档