如何将事件侦听器附加到javascript中的方法

时间:2016-02-11 19:25:34

标签: jquery

我知道以下适用于点击事件:

$("#element").click(function () {
  //logic here
});

但是,如果我自己创建的方法被调用,而不是听取点击,我会想听?

所以,如果我有这样的方法:

function onDataReceived(data) {
   return data;
}

有没有办法在它被调用时附加一个监听器并获取数据? (在这种情况下,数据可以是1或0,所以我会监听onDataReceived(1)或onDataReceived(0)。

1 个答案:

答案 0 :(得分:1)

不,没有。您需要实现该方法,以便它支持通知侦听器。当然,你不会只为一种方法做这件事,你给自己一个基础设施。查看pub / sub和类似的库。

如果您只需要将其作为一次性进行调试或类似操作,您可以包装方法,这很容易完成:

var originalMethod = onDataReceived;
onDataReceived = function(data) {
    // ...do whatever you want with data here...
    return originalMethod.apply(this, arguments); // 'arguments' looks like pseudo-code, but it isn't
};

现在,调用onDataReceived会调用您的新方法,该方法会对data执行某些操作,然后链接到原始方法。