我应该将我的jquery脚本转换为对象还是让它成为对象?

时间:2010-12-17 08:34:43

标签: javascript jquery oop

我最近一直在复制新的twitter ui(滑动窗格),并且我已经构建了相似的(如果不是稍微好一些)功能。我最近没有遇到任何问题,直到我试图重构时出现了几个错误。也就是说,我正处于决定是否应该重构代码并使用OOP的十字路口。

关于我所做的一些背景,我有一个具有可扩展类的项目列表。在他们里面,我有一个名为“.inner”的div,我在其中放置了右边的数据。然后我有一个$('。expandable')点击功能,它动画右侧窗格并克隆.inner div的所有内容并将其放在右侧窗格中。

当页面加载时,我创建了一些右侧窗格,其中“.pane”类隐藏在左侧窗格下面。我可以根据需要继续我的实现,但我想的是转换每个巨大的点击功能等,然后创建一个Pane对象,它具有动画,隐藏,自身等所有方法。

问题是我不确定这是不是一个好主意,特别是如果有很多窗格。将我的窗格变成对象会增加还是减少加载时间/功能?点击事件是否绑定到类($('。expandable')。click())比如果expandable是Pane对象的方法更快?如果有30个窗格/可扩展的东西呢?

2 个答案:

答案 0 :(得分:0)

我不确定,但是当我以前在javascript中编写脚本时,我曾经使用jQuery,因为这是组织内存和对象的人。我还要说,在我的更多情况下(当我使用jQuery在地图上加载超过1000个点时),Firefox有一个很好的响应。问题出在Internet Explorer中。

我向你推荐,尽可能在javascript中使用OOP。如果它是可行的,使用jQuery(有一个很棒的社区来帮助)。此外,你必须看到IE黑客在这个'导航器'中改进jQuery。

您也可以查看此网页:http://plugins.jquery.com/。在那里,您可以找到许多用于使用jQuery执行最重要和最常用功能的插件。

答案 1 :(得分:0)

根据你想要做什么,你可以只使用选择器引擎和对象,或者我所做的是将我的JQuery插件表达为具有状态的对象,但作为普通插件可以在“外部”世界中看到。

我还将实用程序功能(如客户端缓存,解析器等)放入对象中,因为这些不是关于浏览器交互的,而是关于可重用的内部api的更多内容。

但它真的归结为你想要编码的方式。 JQuery插件库和API非常丰富,但是如果你发现你需要更多,那么对象就是你的选择。