首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >记录jQuery中调用的方法和参数

记录jQuery中调用的方法和参数
EN

Stack Overflow用户
提问于 2012-11-14 10:46:56
回答 1查看 121关注 0票数 2

假设我已经加载了几个插件的jQuery。

我运行了如下代码:

代码语言:javascript
复制
$('someSelector').someMethod('someParam', 'someOtherParam');
$('someOtherSelector').someOtherMethod('anotherParam');
$('anotherSelector').anotherMethodWhichMayOrMayNotBeAPlugin();

我想为jQuery编写一个钩子,以便记录我将保存的结构:

  • 使用了什么选择器?
  • 哪种方法被调用
  • 它得到了什么论据

我知道我可以覆盖两个$()来捕获选择器,也可以(通过编写插件)向jQuery添加方法,但我不完全确定如何获得方法的名称和参数,同时避免破坏jQuery及其插件的现有功能。

性能对此并不是很重要,所以任何动态的方法都是可以的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-14 11:13:26

您可以迭代$.fn中的所有函数,并用自己的函数替换它们。

这个函数反过来可以记录调用它的jQuery对象的选择器和它接收到的参数,然后调用原始函数。

类似于:

代码语言:javascript
复制
$.each($.fn, function(key, func) {
    if ($.isFunction(func)) {
        $.fn[key] = function() {
            console.log("Method '" + key + "' was called");
            console.log("  on selector '" + this.selector + "'");
            console.log("  with arguments: " + arguments);
            return func.apply(this, arguments);
        };
    }
});
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13377326

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档