设计有大量活动的页面的最佳实践

3

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

在这种情况下,当单击复选框时,页面上可能会有很多反应。

此外,如果单击按钮,页面上也会有很多反应。

例如,如果有人勾选了复选框,则该行应突出显示,将显示/隐藏工具栏等。

如果有人直接点击工具栏,则类似于单击复选框时的反应。

因此,我想要做的是,每当单击复选框或工具栏按钮时,我都想“宣布”此事件已发生。

然后,根据事件源,我可以以相似或不同的方式进行反应。

如何最好地设计这样的内容?

4个回答

3

我认为你需要了解使用观察者模式。基本上,感兴趣的人会订阅或监听发布者上的事件,当事件发生时,源头会通知所有的听众。


+1 推崇一种模式。虽然在 JQuery 中使用类有点棘手。这就是为什么我喜欢 Mootools =) - pleasedontbelong

1

我想到了两件事情:
1. 事件委托(你不想绑定到网格上的每个输入) 看看这个链接,以了解一个很好的方法来做到这一点,同时保持代码整洁: by ben nadel
2. 使用自定义事件,甚至更好的是 - 使用此pub/sub插件

我的应用程序中有一个类似于这样的大型网格,随着时间的推移不断发展,手动绑定到每个输入并以不同的方式响应会导致代码变得“有点”丑陋, 很棒,现在你知道你要去哪里并提前准备。


0

我喜欢它与jquery一起工作的方式,因为你可以将事件绑定到多个元素上。

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

这段代码将使所有复选框警报其名称。当然,通过使用CSS类,您可以绑定所有复选框的子集以创建操作。

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

0
你可以尝试使用YUI自定义事件。这可以让你触发自己的“事件”,便于监听者接收。

我相信jQuery也可以实现自定义事件。 - Justin Johnson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接