我对javascriptjquery相当陌生。我以为我已经学到了足够的知识来做到这一点,但是显然没有。我认为代码是很容易解释的。

问题是ArrowDir显然是未定义的。在我看来,它似乎很确定,但是我敢肯定我缺少明显的东西。

function ArrowDir(){
    var up = function(){
        $("#arrow").attr('src','up_arrow.jpg');
    };

    var down = function(){
        $("#arrow").attr('src','down_arrow.jpg');
    };
}

$(function () {
    if($("#toggle").onclick){
        ArrowDir().down();
    };
});


我尝试将函数分配为变量var ArrowDir = function(),但似乎没有什么不同

最佳答案

您无法以编写的方式访问updown值。您只需要从down()正文中调用ArrowDir,除非您已将这些函数添加到ArrowDir返回值中:

ArrowDir() {
  var up = ...;
  var down = ...;
  return {
    up: up,
    down: down
  };
}




另外,如果除了封装ArrowDirup函数之外,没有将down用于其他用途,则应仅将ArrowDir声明为对象,然后调用ArrowDir.up()ArrowDir.down()

var ArrowDir = {
    up: function () {
        ...
    },
    down: function () {
        ...
    }
}

09-20 21:02