我有一个jQuery draggable()函数,并且在拖动时正在执行基于if的其他几个函数。像这样:
$("div.element").draggable({
drag: function() {
if (a=1){
function1();
}
if (a=2){
function2();
}
if (a=3){
function3();
}
}
});
涉及许多变量,我希望从性能角度来看优化它。是否有可能使拖动“知道”在拖动时执行什么功能而不进行每次if
检查。类似于拖动的东西只需要function2()和function3()。
谢谢
答案 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")(); }
});