如何将变量“注入”到匿名函数中

时间:2015-04-17 10:36:49

标签: javascript jquery jquery-ui closures anonymous-function

我有以下jQuery(ui)代码:

    function initSortable() {
    var placeholderClass = "ui-state-highlight";
    var movement; /* = {'id': 0, 'from': 0, 'to': 0};*/
    setPlaceholderClassHeight(placeholderClass);
    $(".listTable td").each(function () {
        $(this).css("width", $(this).width());
    });
    $('.listTable tbody').sortable({
        placeholder: placeholderClass,
        forcePlaceholderSize: true,
        axis: "y",
        cursor: "grab",
        opacity: 0.8,
        start: function (event, ui) {
            ui.item.toggleClass("highlight");
            movement.id = ui.item.data('id');
            movement.from = ui.item.data('id');
            console.log(ui.item.index());
            console.log(ui.item.data('id'));
        },
        stop: function (event, ui) {
            ui.item.toggleClass("highlight");
        },
        update: function (event, ui) {
            console.log(ui.item.index());
            movement.to = ui.item.index();
            console.log(movement);
        }
    });
}

它不起作用,因为movement在分配给启动/停止/更新的功能中是未知的。 如何使用和更改运动变量?

1 个答案:

答案 0 :(得分:3)

movement被声明在正确的位置,它应该更新。它没有更新,因为它是undefined。声明var movement = {}并检查