jQuery / JS函数值返回

时间:2014-05-13 02:08:32

标签: javascript jquery function jquery-ui-draggable

这可能是由于失眠,但我一直无法使用以下简单的JS功能。

function numFunction() {
    var retNum = null;
    $('.draggable').draggable($state).on("drag", function (event, ui) {
        retNum = 31;
    });
    return retNum;
}

var finNum = numFunction();

这很容易:

  • 我们首先创建一个名为numFunction的函数。
  • 定义变量retNum。由于jQuery UI draggable触发的事件(变得非常好),变量会更改其值。
  • 返回retNum
  • 最后但并非最不重要的是,定义新变量finNum,其中包含函数{假设的}新值31
  • 故事结束。

不幸的是,它不起作用。 console.log(finNum)仅返回null。我正要把头撞在墙上:我不知道自己错过了什么。

1 个答案:

答案 0 :(得分:1)

您只是在可拖动事件处理程序上更改retNum的值,该事件处理程序仅在触发事件后才会执行。

但是,除非该事件已触发,否则不会发生。

当您调用该函数时,可能尚未触发处理程序,因此retNum仍为null

这样做:

function numFunction() {
    var retNum = null;
    $('.draggable').draggable($state).on("drag", function (event, ui) {
        retNum = 31;
    }).trigger('drag');<- trigger it immediately to set the value of retNum to 13
    return retNum;
}