我發現了以下定義如何通過Javascript中的「fn」成員來定義函數?
$.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
是一個函數,這裏至關重要嗎?
UPDATE
對不起,其實我並沒有做任何修改。我只是把這個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無處不在,它說「flex1」不是一個函數。
@Dims,你可以發佈你的修改版嗎? –
@ T.J.Crowder,如果沒有定義,它就成爲全局對象。或者我錯了? –
@AmitJoki:全局*變量*(不一定是指對象),是的,除非你使用嚴格模式,這使得它應該是錯誤的。 –