当函数执行Jquery时执行某些操作 [英] do something when function executes Jquery

查看:63
本文介绍了当函数执行Jquery时执行某些操作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

所以我有一个递归反转颜色的函数。这是代码:

So I have a function that is recursive for inverting colors. Here is the code:

function invert(id,what){
    var color = $(id).css(what);
    var matchColors = /rgb\((\d{1,3}), (\d{1,3}), (\d{1,3})\)/;
    var match = matchColors.exec(color);
    var r = (255 - match[1]).toString() + ",";
    var g = (255 - match[2]).toString() + ",";
    var b = (255 - match[3]).toString();
    answer = 'rgb(' + r + g + b + ')' ;
    $(id).css(what,answer);
};

所以基本上我有一个可以在很多实例中调用的函数(特定id的点击,悬停在特定课程等)我并不全都知道。但我需要知道每次调用此函数。如何设置一个外部代码行,将变量设置为调用函数的次数?

So essentially I have a function that can be called in many instances (clicks of specific ids, hover on specific classes, etc.) and I do not know them all. But I need to know every single time this function gets called. How can I have an outside line of code that sets a variable equal to the amount of times the function has been called?

推荐答案

包装功能

var wrapped = (function wrapper(present) {
    function wrapping() {
        ++wrapping.count; // increment invocation count
        return present.apply(this, arguments);
    }
    wrapping.count = 0; // counter, avaliable from outside too
    return wrapping;
}(invert));

如果你需要调用它反转 ,重新分配反转之后。

If you need to call it invert too, re-assign invert after.

invert = wrapped;
invert.count; // 0
invert();
invert.count; // 1
invert();
invert.count; // 2

这篇关于当函数执行Jquery时执行某些操作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆