【发布时间】:2016-01-03 21:15:18
【问题描述】:
您可以在没有任何 javascript 的情况下初始化引导下拉菜单。您也可以手动初始化它。
我创建了一个 JQuery 插件,并将我的所有默认值和选项与 $.extends 合并。
var settings = $.extend(true, {}, defaults, options, $self.data());
我的插件像任何普通插件一样被初始化。
$('ul.dropdown.users-list').awesomeplugin({/* ... */});
什么是让它自动初始化的正确方法,但如果手动初始化它也不会重复,就像引导下拉菜单的工作方式一样?
例如,我知道我可以这样做:
$(function(){
$('[data-myawesomeplugin]').each(function(){
$(this).myawesomeplugin();
});
});
但是如果有人决定手动初始化,初始化不会发生两次吗?
【问题讨论】:
-
这很容易,除非它应该与将来添加的动态插入元素一起使用。如果没有,您只需搜索具有特定数据属性的元素,然后在这些元素上运行插件。
-
@adeneo 但是如果您决定手动执行一次以指定某个选项,您不会手动初始化插件然后从数据属性中获取它自己的初始化吗?因此它会被初始化两次?
-
只需将一个类添加到插件中已初始化的元素或类似的东西,然后在插件中检查它,这是避免双重初始化的常用方法
标签: javascript jquery twitter-bootstrap twitter-bootstrap-3