选择器阵列的链接效应

时间:2014-11-15 00:05:05

标签: jquery wordpress

我正在为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

2 个答案:

答案 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) });

});