jQuery draggable(),在拖动时执行动态函数

时间:2010-08-23 16:57:19

标签: jquery draggable

我有一个jQuery draggable()函数,并且在拖动时正在执行基于if的其他几个函数。像这样:

$("div.element").draggable({
    drag: function() {
            if  (a=1){
                function1();
                }
            if  (a=2){
                function2();
                }   
            if  (a=3){
                function3();
                }   
    }
});

涉及许多变量,我希望从性能角度来看优化它。是否有可能使拖动“知道”在拖动时执行什么功能而不进行每次if检查。类似于拖动的东西只需要function2()和function3()。

谢谢

1 个答案:

答案 0 :(得分:2)

您可以使用jQuery数据直接使用可拖动元素存储相应的函数对象:

// declare the appropriate function for each element
$("select elements that need function1").data("dragFunction", function() {
  // whatever
});
$("select elements that need function2").data("dragFunction", function() {
  // whatever
});

// and then... just execute whatever function is stored in "dragFunction"
$("div.element").draggable({
  drag: function() { return $(this).data("dragFunction")(); }
});