我知道以下适用于点击事件:
$("#element").click(function () {
//logic here
});
但是,如果我自己创建的方法被调用,而不是听取点击,我会想听?
所以,如果我有这样的方法:
function onDataReceived(data) {
return data;
}
有没有办法在它被调用时附加一个监听器并获取数据? (在这种情况下,数据可以是1或0,所以我会监听onDataReceived(1)或onDataReceived(0)。
答案 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
执行某些操作,然后链接到原始方法。