我正在为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
答案 0 :(得分:0)
$('#btn').click(getAnimation(stepOne));
这样做
1)将使用stepOne作为参数
启动getAnimation()2)它的返回值(none => null)将被设置为#btn的onclick动作
3)点击#btn后,将启动onclick操作。我们设置为onclick动作? NULL
将其更改为:
$('#btn').click( function(){getAnimation(stepOne);} );
答案 1 :(得分:0)
它未定义,因为它期望在您放置的点击事件中存储变量。但是,此事件在其括号中查找的特定变量类型可以是有效的事件处理函数(即回调函数)。
换句话说,它需要一种方法来存储实际事件发生时的未来功能。 $("#...").click()
方法调用是一个JQuery事件处理方法调用,并告诉DOM对象将此处理程序附加到它以供将来使用。一旦发生点击,该变量就会被激活......
这是因为变量实际上是为了存储一个叫做指针的东西。指针是事件发生的函数(将来的行为)的委托。
因此,为了解决这个问题,你需要传递一个函数调用,就像这样......
$(function () {
var stepOne = [ "#step1", "#step2", "#step3" ];
$('#btn').click( function() { getAnimation(stepOne) });
});