如何在start:stop中使用自己的函数:使用参数'ev'和'ui'?

时间:2013-01-21 17:29:05

标签: javascript jquery draggable user-defined-functions

在我的draggables中,start:stop:的代码变得太大(50-100行),我开始有可读性问题。

$(".dra").draggable({
    revert: "invalid",
    start: function(ev, ui){
        //...50-100 lines...
    },
    stop: function(ev, ui){
        //...50-100 lines...
    }
});

为了修复可读性,我想创建两个全局函数startDrag()stopDrag(),并像start: startDrag(ev, ui)一样插入它们。但我没能成功完成这项工作:

function startDrag(ev, ui){
    //...50-100 lines...
}

function stopDrag(ev, ui){
    //...50-100 lines...
}

function createDraggables(){
    $(".dra").draggable({
        revert: "invalid",
        start: startDrag(ev, ui),
        stop: stopDrag(ev, ui)
    });
}

为什么这不起作用?

2 个答案:

答案 0 :(得分:3)

尝试将其更改为:

function createDraggables(){
    $(".dra").draggable({
        revert: "invalid",
        start: startDrag,
        stop: stopDrag
    });
}

答案 1 :(得分:2)

由于功能范围,可以这样写:

function createDraggables(){
    $(".dra").draggable({
        revert: "invalid",
        start: startDrag,
        stop: stopDrag
    });
}