在调用时,将一个函数绑定到另一个函数上是否可行?例如,它可能会像这样进行:
function a(){...}
function b(){...}
b.bind("onInvoke","a");
当调用b时,a也会自动被调用。
编辑:好的,为了澄清,这不是一个有关链式调用的问题。这个想法是找到一种优雅的方式来绑定事件。观察使用普通函数回调的正常“非优雅”方式:
function handler(){...}
function caller1(){handler(); ...}
function caller2(){handler(); ...}
function caller2(){handler(); ...}
// More callers all over your website everywhere else
这样做没问题吧?但是如果我有很多地方都调用了,那么组织和修改起来就很困难。
现在看看更好的解决方案!(如果有的话)
function handler(){...}
// Caller make no reference to handler on creation
function caller1(){...}
function caller2(){...}
function caller3(){...}
// Caller function are still all over the place, all over your website
// Event handler registered later in one location here, doesn't matter where they are phsically
caller1.bind("onInvoke",handler);
caller2.bind("onInvoke",handler);
caller3.bind("onInvoke",handler);
非常类似于普通的HTML-JQuery事件注册。你不需要在用户可能会点击的每张图片上都写onClick(这样做太麻烦了!),只需编写一个简单的代码即可。
$("img").bind("onClick",click_handler);
针对整个网站。这就是我要寻找的主要内容,除了JS功能之外。
希望这可以澄清问题。
编辑2:需要与IE7配合使用!!!JavaScript 1.8.5很棒,但目前没有支持它的东西。
b
之后调用a
),但是两个问题之间的前提似乎是相同的;“当调用一个函数时,调用另一个函数”。我可能错了,但这取决于发帖者清楚地区分这两个问题 :-) - Andy Ebind
示例中得到了那种感觉。即便如此,那个问题很可能也是一个重复的问题:D - PeterAdam Rackis
和Simon
的解决方案似乎都可以工作。Simon
的解决方案更优秀,因为它允许绑定多个函数。 - Bill Software Engineer