// these work
$(document).ready().calHeader();
$(".prevMonth").click().calHeader();
// this doesn't work
$(".prevMonth").bind("click", calHeader);
我正在努力让最后一个工作,因为我不希望该功能在点击之前运行。几个回答问题的解决方案说是第三种方式。但我一直在Chrome控制台中收到此错误:
Uncaught ReferenceError: calHeader is not defined(anonymous function) @ override.js:101
为什么前两个工作正常但最后一个没有?从解释中我缺少什么/不理解?真的很感激一些方向!
答案 0 :(得分:1)
.calHeader()
有效,因为calHeader
函数是jQuery对象的属性(即它是由插件定义的jQuery方法),而其他jQuery方法返回一个jQuery对象,以便你可以链接这样的方法。它不是变量名,因此您无法直接调用它或将其作为函数参数传递。
与$(".prevMonth").click()
但click()
相同的原因相同。
答案 1 :(得分:1)
由于您的插件似乎并不依赖于传递给它的任何选择器元素,因此它似乎只不过是一个功能
您可以使用$.fn.calHeader = function
并执行:
$.calHeader= function
创建它
$(".prevMonth").on("click", $.calHeader);