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

Javascript 设计包含大量事件的页面的最佳实践,javascript,jquery,ajax,Javascript,Jquery,Ajax,因此,我在页面上有一个网格,显示小报数据,每行有一个复选框 因此,在这种情况下,当单击复选框时,分配的内容可能会在页面上做出反应 此外,如果单击一个按钮,再次分配内容可能会在页面上做出反应 比如说,如果有人选中复选框,该行应该高亮显示,有一个工具栏可以显示/隐藏按钮,等等 如果有人直接点击工具栏,同样,与点击复选框时类似的事情也会发生反应 所以我想做的是,无论何时单击复选框,还是无论何时单击工具栏按钮,我都想向任何正在收听的人“宣布”发生了此事件 然后,根据事件的来源,我可以以类似或不同的方式作

因此,我在页面上有一个网格,显示小报数据,每行有一个复选框

因此,在这种情况下,当单击复选框时,分配的内容可能会在页面上做出反应

此外,如果单击一个按钮,再次分配内容可能会在页面上做出反应

比如说,如果有人选中复选框,该行应该高亮显示,有一个工具栏可以显示/隐藏按钮,等等

如果有人直接点击工具栏,同样,与点击复选框时类似的事情也会发生反应

所以我想做的是,无论何时单击复选框,还是无论何时单击工具栏按钮,我都想向任何正在收听的人“宣布”发生了此事件

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


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

你可以试试。这让你可以激发自己的“事件”,听众可以听到。

我想你应该研究一下如何使用。基本上,感兴趣的各方订阅或侦听发布服务器上的事件,当事件发生时,源代码会通知所有侦听器。

我喜欢它与jquery的配合,因为您可以将事件绑定到多个发布服务器上 元素同时出现

$("input[type=checkbox]").click(function(e){
    alert(e.currentTarget.id);    
    });
此代码将使所有复选框都提示其名称。当然,通过使用css类, 您可以绑定所有复选框的子集以创建操作

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

我想到两件事:
1.事件委派(您不想绑定到网格上的每个输入) 查看此链接,可以找到一种很好的方法,同时保持代码整洁: 通过
2.使用自定义事件,甚至更好-

我的应用程序中有一个类似这样的大网格,随着时间的推移不断演变,手动绑定到每个输入+以不同方式响应导致代码“有点”难看,

很高兴您现在就知道了您要去的地方,并且提前做好了准备

我相信jquery也会做定制活动。+1用于推广模式。尽管在JQuery中使用类有点棘手。这就是为什么我喜欢Mootools=)