0

在语义 UI 中,我如何判断一个 give.ui.dropdown是否已经被初始化为下拉菜单(使用$(.ui.dropdown).dropdown(...))?

我问是因为我想定义一个“回退”,它将使用默认参数初始化任何未初始化的下拉菜单(或复选框或其他 JavaScript 绑定模块)。但是,将它们初始化两次通常会产生奇怪的行为。

例子:

$('.ui.dropdown.special').dropdown({ action: somethingSpecial() });

// Later...

$('.ui.dropdown').each(function()
{
    if (/* $(this) is not already a dropdown */)
    {
        $(this).dropdown();
    }
});
4

1 回答 1

0

到目前为止,我发现的唯一解决方法是手动添加一个属性并检查它:

$.fn.safeDropdown = function(args)
{
    $dropdown = $(this);

    if (!$dropdown.is('[data-semantic]'))
    {
        $dropdown.attr('data-semantic', 'dropdown');
        $dropdown.dropdown(args);
    }
};

但这并不理想,因为它需要更改所有现有代码,并且输入时间更长。

于 2014-10-23T03:25:35.587 回答