我正在为Wordpress开发一些主题,我使用以下jQuery代码:
(function ($, root, undefined) {
$(function () {
var stepOne = [ "#step1", "#step2", "#step3" ];
$('#btn').click(getAnimation(stepOne));
});
})(jQuery);
function getAnimation(getArray) {
getArray.each(function() {
var $div = $(this);
$div.queue('classing', function(next) {
$div.delay(delay).addClass("stepwalk", next);
});
$li.dequeue('classing');
delay += 250;
});
}
我面临两个问题:
1-函数getAnimation()正在触发,而无需单击按钮 #btn。
2-我在控制台中收到以下错误消息:
Uncaught TypeError: undefined is not a function
getAnimation
(anonymous function)
j
k.fireWith
m.extend.ready
J
$('#btn').click(getAnimation(stepOne));
这确实
1) getAnimation() 将以 stepOne 作为参数启动
2)它的返回值(无=>空)将被设置为 #btn 的点击操作
3) 单击 #btn 后,将启动点击操作。我们将什么设置为点击操作?零
将其更改为:
$('#btn').click( function(){getAnimation(stepOne);} );
它是未定义的,因为它期望在点击事件中存储一个变量,就像你放置的那样。但是,此事件在其括号中查找的特定变量类型可以是有效的事件处理程序函数(即回调函数)。
换句话说,它需要一种方法来存储一些功能,以便将来实际事件发生时使用。$("#...").click()
方法调用是 JQuery 事件处理方法调用,并告知该 DOM 对象将此处理程序附加到它以供将来使用。一旦发生点击,变量就会被激活......
这是因为该变量实际上是用来存储称为指针的东西。指针是函数(未来行为)对事件的委托。
因此,为了解决这个问题,你需要像这样传入一个函数调用......
$(function () {
var stepOne = [ "#step1", "#step2", "#step3" ];
$('#btn').click( function() { getAnimation(stepOne) });
});