我正在学习jQuery并看到了这段代码。
myJqueryFile.js
(function($, undefined) {
function Calendar(element, options, eventSources) {
var t = this;
t.incrementDate = incrementDate;
....some code here
function incrementDate(years) {
if (years !== undefined) {
addYears(date, years);
}
renderView();
}
}
})(jQuery);
在我的html中,我在外部引用了上面的js并想调用incrementDate()但是我一直在“增量不是函数”。
但我认为incrementDate()不是私有函数,所以我应该能够从外部调用它。真的有可能吗?
我正在调用incrementDate,如下所示:
<a href="" onclick="incrementDate();" />
哎呀,我完全错过了周围的jQuery支架!
答案 0 :(得分:2)
是的,你可以打电话给它。您可能需要使用apply来调用它,以便您定义this
和arguments
。
还有一些文档here。
如果您需要一些代码:
var result = Calendar.prototype.incrementDate.apply(mycalendarObj, myArguments);
好的,你似乎只需要:
calObject.incrementDate(1,1,1); // adds one year + one month + one day
答案 1 :(得分:1)
您只能在日历实例上调用它。
var cal = new Calendar(element, options, eventSources);
cal.incrementDate();
并且日历的范围是匿名函数,你将整个事情包装起来。所以代码只能出现在该函数内部(除非你做一些事情来暴露它)。