19-讨论
14.3.3 讨论
- 如果在超过一个元素的集合上调用jQuery UI插件的
init
方法,将在每个元素上单独调用init
。所以,下列的语句 和如下语句等价: - 每个
DOMElement
仅可以被每个jQuery UI插件初始化一次。任何未来的init
调用,不管是否指定选项,都会被忽略。本章后面有关于在init
之后改变选项以及销毁插件的秘诀,该插件撤销init
操作。如果你真的要这么做,可以在那之后再次调用init
。 - 所有选项都是可选的。始终可以安全地调用插件名称方法初始化jQuery UI插件。这不仅安全,而且非常实用。每个插件都设计了最常用的默认选项。如果这些选项不合你的心意,参见下两个秘诀。
因为JavaScript是区分大小写的,所以在jQuery UI插件的名称上要多加小心。和jQuery API一样,所有jQuery UI插件都以小写字母开始,大部分都只有一个单词。如果需要超过一个单词,从第二个单词开始都以大写字母开始。目前还没有任何jQuery UI插件的名称超过一个词,示例如下:
$('p.long').succinct();
$('.short').longerPluginName();
$('img').draggable();
初始化元素有一个类 ui-pluginname
。例如,下面是调用 $('div').draggable()
;前后的HTML:
$('img').each(function() {
$(this).draggable();
});
<div>A simple DIV</div>
<div class="ui-draggable">A simple DIV</div>
这种情况也有一些例外。调用 .dialog()
的元素得到 ui-dialog-content
类,并且包装在具有 ui-dialog
类的一个生成元素里。另一个例外是,如果在文本输入字段上调用 .datepicker()
, 输入字段将不具有 ui-datepicker
类,但在输入字段获得焦点时显示的 <div>
具有 ui-datepicker
类。
下面是初始化jQuery UI插件时需要注意的几点: