首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取类型错误的MOO工具--“不是函数”

获取类型错误的MOO工具--“不是函数”
EN

Stack Overflow用户
提问于 2014-01-10 22:10:01
回答 1查看 202关注 0票数 0

所以我对MOO工具非常陌生,每次使用函数,比如hasClass或removeClass,我都会收到一个类型错误。我几乎没有使用MOO工具的经验,完全不知所措。我查看了文档,语法是正确的。

下面是代码,错误发生在第354行:"TypeError: li.removeClass不是函数“http://pastebin.com/G63003DG

我签了moo工具文档,removeClass的语法也很好。运行最新版本的moo工具。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-10 22:15:15

一般来说,这意味着您试图在一个不是MooTools扩展的DOM对象上使用这个函数。

几乎任何时候,当您从MooTools获得DOM对象时,都会在得到DOM对象之前对其进行扩展。对于MooTools可以扩展DOM元素原型的任何浏览器也是如此。但是早期版本的IE (IE8和更早版本)没有HTML原型,因此MooTools不能扩展原型,每个元素都必须手动扩展。如果您直接从DOM属性(firstChildnextSibling,.)获得一个元素,除非它之前已经进行了扩展,否则它还不会有MooTools的扩展。要扩展它,通过$()函数传递它:

代码语言:javascript
复制
$(li).removeClass("the-class");

同样,这基本上只出现在IE8 (仍然广泛使用)和更早的时候,因为MooTools可以在其他浏览器上扩展HTML元素的原型;但是早期版本的IE不提供元素原型,因此元素必须逐元素扩展。

下面是一个在IE8中失败的例子:活拷贝 \ 活源

代码语言:javascript
复制
var li = document.getElementById('theitem');
li.onclick = function() {
    li.addClass('myClass');
};

还有一个在IE8中工作的例子(唯一的改变是li => $(li)):活拷贝 \\ 活源

代码语言:javascript
复制
var li = document.getElementById('theitem');
li.onclick = function() {
    $(li).addClass('myClass');
};
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21055351

复制
相关文章

相似问题

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