2

这真的让我很沮丧。我正在尝试构建一个没有库的自定义 JavaScript 应用程序。这主要是为了让我学习更好的核心 JavaScript 和 JavaScript 模式。我正在尝试实现 MVC 结构,并且我分别理解这些部分,但是对于我的生活,我无法弄清楚如何将视图和控制器连接在一起。例如,如果我有以下代码:

<div>
    <button id="button1">Click Me</button>
    <button id="button2">Click Me</button>
    <button id="button3">Click Me</button>
</div>

我到底如何编写一个 controller.js 文件来监听每个按钮的点击并做出响应。特别是如果每​​个按钮都做了与其他按钮完全不同的事情。假设 button1 只是链接到 google.com,button2 打开一个模式框,而 button3 更新一个数据库表。所以每个人都在做完全独立的事情。我试图避免的是使用 jQuery 来做这样的事情。

$('#button1').click(function(){
       //go to google.com
});

$('#button2').click(function(){
       //open modal box
});

$('#button3').click(function(){
       //update database
});

这似乎不是很有效,尤其是在尝试使用 MVC 结构时。有没有更流畅的方法,甚至我可以遵循一些不同的设计模式来编写这是没有库的核心 JavaScript?我在网上搜寻文章,但我找到的一切都在很大程度上依赖于图书馆。

任何书籍、教程、博客文章或任何类似的东西都可以清楚地解释这样的事情,非常感谢。谁知道一旦我掌握了它的窍门,也许我会为大众写一本关于它的书。

再次感谢社区的帮助。

4

2 回答 2

2

您正在使用 Javascript 编写应用程序,遵循 MVC 设计模式,了解核心 javascript 是一个好主意,因为您必须适应 js 上的现有设计模式 :)

我首先会递归地解析 DOM,检索每个标签,然后将它们关联起来的简单点击事件代码调用 click_event 通用(和全局)函数,按钮 id 作为参数,有一个标识按钮的入口点.

然后这个通用方法(事件入口点)必须为动作选择并启动适当的控制器。

您还可以使用 2 个参数更进一步:objectId 或引用,以及事件类型。这与许多基本 GUI 上的触发事件非常相似。

于 2012-08-28T18:56:52.360 回答
-1

我并没有真正理解“MVC JavaScript 应用程序”的想法。JS 只是 webapp 的 V 的一部分。

如果您希望您的代码在多个浏览器上运行,jQuery 是您的最佳选择。

但是,我承认有些情况下你不能使用库,你必须编写简单、苗条、纯粹的 js 核心代码。了解编程语言的核心然后学习该语言的库/框架也是一个好主意。

现在,我不确定你对 js 了解多少。我一直很喜欢 w3schools 教程,你真的在​​那里得到了基础知识。对于 js 在这里:http ://www.w3schools.com/js/default.asp

如果您从那里了解一切,并且您的目标是获得更高级的 js 技能,那么您将不得不多挖一点:

http://ejohn.org/apps/learn/ - 很好的教程,包含一些你应该知道的关于 js 的东西(对象、原型继承、声明提升概念等)。

http://www.javascriptkit.com/javatutors/ - 关于真实情况的非常实用的教程,有很好的解决方案

http://code.google.com/p/jslibs/wiki/JavascriptTips - 有趣的 js 提示和技巧

http://www.quirksmode.org/ - 与学习 js 没有直接关系,但如果您打算在不同的浏览器中使用 js,则必须知道。

希望这会有所帮助

于 2012-08-28T18:37:36.953 回答