我正在阅读有关使用jquery ui小部件工厂创建插件的初学者文档。它需要命名空间名称:我应该如何使用jquery小部件上的命名空间?
$.widget('dp.list', {
我的问题是...你有一个名称空间吗?我的插件应该属于什么样的名称空间有什么约定(桶)?有没有一个列表,或者我可以做任何我想要的东西?
我正在阅读有关使用jquery ui小部件工厂创建插件的初学者文档。它需要命名空间名称:我应该如何使用jquery小部件上的命名空间?
$.widget('dp.list', {
我的问题是...你有一个名称空间吗?我的插件应该属于什么样的名称空间有什么约定(桶)?有没有一个列表,或者我可以做任何我想要的东西?
的命名空间是个人的。但是:
命名空间是你识别你的插件的方式。通常你想用几个简单的词来描述你的插件的功能,但保持它的独特性。
通过描述你的插件,你告诉你的用户简要他们可以期待的插件做的,但如果名称是常见的,你可能会遇到另外一个插件叫这个名字,并且可能会导致问题的一个烂摊子。
你也不想因为那时不明确的插件做什么,不描述它创造性的名字。
一个良好的开端将是看看jQuery UI的库。这些名字非常直观和有意义。该名称代表将在小部件实例化中创建的ui小部件。
jQuery的组件框架可以被视为以模仿OO类似功能的工具。
它为使用一致的API构建复杂的有状态插件 提供了灵活的基础。它不仅是jQuery用户界面的一部分 ,插件,但对于谁想要 无需重塑共同 基础设施创建的面向对象的组件,开发人员一般消费而设计的。 - http://wiki.jqueryui.com/w/page/12138135/Widget%20factory
命名空间可以是有意义的,如果你有多个模块,并且你想避免冲突,以及提供有意义的分类
$.widget('<module_name>.widgetName', {..prototype..})
如
$.widget('cart.paymentProcess', {}) , $.widget('cart.shippingCalculator', {})
$.widget('catalog.productReviews',{}), $.widget('catalog.productPricing',{}) etc
我也建议阅读这些有帮助的问题以了解jQuery小部件中的命名空间问题:
JQuery UI: How to call a widget function with its namespace
Extending jQueryUI widgets without conflicts
如何命名空间与碰撞,当调用插件的时候命名空间无法使用帮助?如果您命名小部件'cart.shippingCalculator',那么您仍然只是将它作为'shippingCalculator'在jQuery对象上调用。 – Triynko 2015-12-07 21:04:23