fightmaster/fightmaster-bootstrap-bundle

安装: 8

依赖: 0

建议者: 0

安全性: 0

星标: 1

关注者: 2

分支: 0

开放问题: 0

语言:JavaScript

类型:symfony-bundle

dev-master 2012-08-19 11:42 UTC

This package is not auto-updated.

Last update: 2024-09-14 13:20:07 UTC


README

这些是指导Bootstrap插件API开发的顶层设计规则。

DATA-ATTRIBUTE API

我们相信您应该能够仅通过标记API使用Bootstrap提供的所有插件,而无需编写任何JavaScript代码。这是Bootstrap的一等API。

我们承认这并不总是性能最好的,有时可能希望完全关闭此功能。因此,从2.0版开始,我们提供了禁用数据属性API的能力,即解除所有以'data-api'命名空间在body上绑定的事件。这看起来是这样的

$('body').off('.data-api')

要针对特定插件,只需包含插件名称作为命名空间,以及data-api命名空间,如下所示

$('body').off('.alert.data-api')

PROGRAMATIC API

我们也相信您应该能够仅通过JavaScript API使用Bootstrap提供的所有插件。

所有公共API应该是单一的、可链式的方法,并返回所作用的集合。

$(".btn.danger").button("toggle").addClass("fat")

所有方法都应该接受一个可选的选项对象、一个字符串,用于指定特定方法,或null以启动默认行为

$("#myModal").modal() // initialized with defaults
$("#myModal").modal({ keyboard: false }) // initialized with no keyboard
$("#myModal").modal('show') // initializes and invokes show immediately

OPTIONS

选项应该是稀疏的,并添加通用值。我们应该选择正确的默认值。

所有插件都应该有一个默认对象,可以修改以影响所有实例的默认选项。默认对象可以通过$.fn.plugin.defaults访问。

$.fn.modal.defaults = { … }

选项定义应采用以下形式

*noun*: *adjective* - describes or modifies a quality of an instance

示例

backdrop: true
keyboard: false
placement: 'top'

EVENTS

所有事件都应有原形和过去分词形式。原形是在动作发生之前触发的,过去分词是在动作完成后触发的。

show | shown
hide | hidden

所有原形事件都应提供preventDefault功能。这提供了停止执行动作的能力。

$('#myModal').on('show', function (e) {
    if (!data) return e.preventDefault() // stops modal from being shown
})

CONSTRUCTORS

每个插件应在其Constructor属性上暴露其原始构造函数,如下所示访问

$.fn.popover.Constructor

DATA ACCESSOR

每个插件在对象中存储调用类的副本。这个类实例可以通过jQuery的数据API直接访问,如下所示

$('[rel=popover]').data('popover') instanceof $.fn.popover.Constructor

DATA ATTRIBUTES

数据属性应采用以下形式

  • data-{{verb}}={{plugin}} - 定义主要交互
  • data-target || href^=# - 定义在"控制"元素上(如果元素控制除自身之外的元素)
  • data-{{noun}} - 定义类实例选项

示例

// control other targets
data-toggle="modal" data-target="#foo"
data-toggle="collapse" data-target="#foo" data-parent="#bar"

// defined on element they control
data-spy="scroll"

data-dismiss="modal"
data-dismiss="alert"

data-toggle="dropdown"

data-toggle="button"
data-toggle="buttons-checkbox"
data-toggle="buttons-radio"