放置在绑定事件处理程序中时未定义的函数
Undefined function when placing in bind event handler
我正为此焦头烂额。我有一个功能,我可以在准备就绪时、在单击时加载它,但当我将它放在绑定事件处理程序中时却不能。
// 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
为什么前两个可以正常工作而最后一个却不行?我 missing/not 从解释中理解了什么?非常感谢一些指导!
.calHeader()
有效,因为 calHeader
函数是 jQuery 对象的 属性(即它是由插件定义的 jQuery 方法),并且其他 jQuery 方法 return 一个 jQuery 对象,以便您可以像这样链接方法。它不是一个变量名,所以你不能直接调用它或将它作为函数参数传递。
这与您可以 $(".prevMonth").click()
而不是 click()
的原因相同。
由于您的插件似乎不依赖于传递给它的任何选择器元素,因此它看起来只不过是一个实用函数
您可以使用 $.calHeader= function
而不是使用 $.fn.calHeader = function
创建它并执行:
$(".prevMonth").on("click", $.calHeader);
我正为此焦头烂额。我有一个功能,我可以在准备就绪时、在单击时加载它,但当我将它放在绑定事件处理程序中时却不能。
// 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
为什么前两个可以正常工作而最后一个却不行?我 missing/not 从解释中理解了什么?非常感谢一些指导!
.calHeader()
有效,因为 calHeader
函数是 jQuery 对象的 属性(即它是由插件定义的 jQuery 方法),并且其他 jQuery 方法 return 一个 jQuery 对象,以便您可以像这样链接方法。它不是一个变量名,所以你不能直接调用它或将它作为函数参数传递。
这与您可以 $(".prevMonth").click()
而不是 click()
的原因相同。
由于您的插件似乎不依赖于传递给它的任何选择器元素,因此它看起来只不过是一个实用函数
您可以使用 $.calHeader= function
而不是使用 $.fn.calHeader = function
创建它并执行:
$(".prevMonth").on("click", $.calHeader);