jQuery创建一个不是回调的回调?

时间:2013-02-08 17:57:24

标签: javascript jquery callback

好的,让我看看我是否可以这样描述。

我有一些功能是在不久前创建的,并且可以游泳。然而,有一个新的期望的规范,所以无需在说话的问题上重写代码库,并且不必加倍代码以拉出相同的效果我试图弄清楚我怎么能去做一些跳跃在相同函数内的代码中返回更高位置以重复运行函数,而不是再次在下面执行相同的代码。

我所拥有的是基于点击的触发器,即:

$('.selector').click(function(){});

在这个函数中有大约30行功能来创建一个新元素并相应地填充它。然而不幸的是,在相同的功能中,有条件可以应该是否应该使用。

*之前的要求是它创建的元素是开放和填充的,只是抛出一个alert()基本上说结束你的工作,然后继续下一步。

*现在新的要求就近了,开了一个新元素。
除了人口,我已经把现有的东西关闭了,做了我想做的一切。当前条件所在的新元素的大小。

知道javascript中没有“转到”类型的逻辑(或者最后我知道)。我能想到的唯一一件事就是从上面采用相同的代码并将其置于条件中,将代码加倍并且同时使用2个副本。我想避免这种情况,但不能想办法。所以我在这里寻找想法

2 个答案:

答案 0 :(得分:4)

  

知道javascript中没有“转到”类型的逻辑(或者最后一个   知道)。我唯一能想到的就是从中获取相同的代码   以上并将其置于条件中,使代码加倍   并且有两个相同位的副本。我想避免这种情况,   但不能想办法。所以我在这里寻找想法

为什么不把这段代码拉成一个函数?如果条件在原始实例中为true,则可以运行该函数,并在回调中一直运行它?这是一个相当小的重构,只需将代码从逻辑中移到一个单独的函数中,保持原样,并可能将一些引用的变量转换为参数。

如果您想要运行所有操作而不管条件语句如何都是这样的:

...
if(condition){
  actionA();
}
if(condition2){
  actionB();
}
...

$('.selector').click(function(){
    actionA();
    actionB();
});    

答案 1 :(得分:1)

你熟悉那种模式,对吧?

var aCallback =  function(){........};
$('.selector').click(aCallback);