我找到了以下定义
$.fn.flex = function ( options ) {
var p = this.data("flex"),
opts = options || {};
if (p) return p;
this.each(function () {
p = new Flex( this, opts );
$(this).data("flex", p);
});
return opts.api ? p : this;
};
在原始代码中定义函数flex()
。
不幸的是,它停止在我的环境中定义此函数,即函数调用导致flex
不是函数的错误。
flex
作为一个函数的关键是什么?
更新
抱歉,实际上我没有修改任何东西。我只是将这个javascript https://github.com/jasonenglish/jquery-flex/放入我的环境(Liferay)和运行脚本的代码
<script type="text/javascript">
$(function() {
$(".flex").flex();
});
</script>
导致错误。所以我像以前一样将$
替换为jQuery
,但仍然无效。
更新2
嗯。来自Twitter的widget.js出错。说
TypeError: jQuery(...).flex is not a function
如果我将flex重命名为flex1,它会说&#34; flex1&#34;不是一个功能。
答案 0 :(得分:2)
首先,$.fn.flex
$
和fn
是jQuery变量。它们不是JavaScript原生的。 jQuery提供的$.fn
将方法/属性附加到jquery对象
答案 1 :(得分:2)
抱歉,实际上我没有修改任何东西。我只是把这个javascript ...放到我的环境(Liferay)和运行脚本的代码
因为它是一个jQuery插件,所以您需要确保在页面上 jQuery之后包含该脚本。所以
<script src="/path/to/jquery.js"></script>
<script src="/path/to/the-plugin.js"></script>
如果你把它们放在另一个顺序中,第一个脚本将会失败,因为它会尝试获取jQuery
符号的值,该符号尚不存在,抛出ReferenceError
(在松散和严格模式下)。