开发者问题收集

Javascript 与 Jquery:初始化 Modals。JS 无法识别该函数,但 jQuery 可以识别

2015-06-15
390

我正在使用此处的一些模态框 http://materializecss.com/modals.html# !我有一个关于用 javascript 替换 jquery 的任意问题。

我有这个函数,它会在文档准备好后立即执行:

ready: function() {
    $('.modal-trigger').leanModal(); // line 1 works
    document.querySelector(".modal-trigger").leanModal(); // this line does not work
}

到目前为止,我的理解是 jQuery 可以用 Javascript 替换,但第二行不起作用,因为我收到以下错误:

Uncaught TypeError: document.querySelector(...).leanModal is not a function

我在 Javascript 中做错了什么吗?有没有更好的方法来替换

$('.modal-triger')

1个回答

这是一个jQuery插件。它在jQuery对象的原型链上定义。它不会在原始的DOM节点上使用。

它是在这样的地方定义的:

651148954

,这意味着它仅在jQuery对象上工作: $(...)

展开:

$() 用作构造函数,它创建了新对象。 JavaScript中的对象从其原型链中继承方法。

$。fnjQuery.prototype

的别名。

可以随时扩展任何对象的原型,并且所有继承原型的对象都将获得新方法。您可以通过将方法连接到其原型。

140515033

注意:某些人非常反对修改本机原型(数字数字) ,节点,函数,字符串等...)。只要您可以做到并且不覆盖已经存在的东西,就可以在现代浏览器*中这样做。 所有 对象从 object.protype 继承扩展某些原型会引起IE6/7/8中的问题。使用 object.defineProperty 是IE8中的一种稍安全的方法。

Oka
2015-06-15