设计包含大量事件的页面的最佳实践

时间:2010-09-30 18:58:05

标签: javascript jquery ajax

所以我在页面上有一个显示表格数据的网格,每行都有一个复选框。

因此,在这种情况下,当单击一个复选框时,可能会对页面上的所有事情作出反应。

此外,如果单击某个按钮,则会再次分配任何内容。

所以说如果有人检查了一个复选框,该行应该突出显示,有一个工具栏会显示/隐藏按钮等。

如果有人直接点击工具栏,再次点击复选框时会发生类似的事情。

所以我想做的就是这样,每当点击一个复选框,或者点击一个工具栏按钮时,我想向所有正在听这个事件发生的人'宣布'。

然后,我可以根据事件的来源,以类似或不同的方式作出反应。

如何最好地设计这样的东西?

4 个答案:

答案 0 :(得分:3)

我想你想研究一下Observer Pattern。基本上,有兴趣的人订阅或监听发布者的事件,当事件发生时,消息来源会通知所有听众。

答案 1 :(得分:1)

脑海中浮现出两件事:
1.事件委托(你不想绑定到网格上的每个输入) 看看这个链接到一个很好的方法,同时保持一个干净的代码: 按ben nadel
2.使用自定义事件,甚至更好 - use this pub/sub plugin

我的应用程序中有一个像这样的大网格随着时间的推移而发展,并且手动绑定到每个输入+以不同的方式响应导致代码变得“有点”丑陋,
你现在去哪里准备前面很好

答案 2 :(得分:0)

您可以尝试YUI Custom Events。这样你就可以开启你自己的听众可以听到的“事件”。

答案 3 :(得分:0)

我喜欢它如何与jquery一起工作,因为你可以将事件绑定到很多 元素一下子。

$("input[type=checkbox]").click(function(e){
    alert(e.currentTarget.id);    
    });

此代码会使所有复选框都提醒他们的名字。当然,通过使用css类, 您可以绑定所有复选框的子集以创建操作。

$("input[type=checkbox].cssClass").click(function(e){    
    someOtherFunction(e.currentTarget);
    });