如何检查jQuery UI插件是否附加到元素?

Jay*_*Jay 11 javascript jquery jquery-ui

如何检查jQuery UI插件是否附加到元素?例如,如果我加载.sortable小部件,它的存在如何确定?

这个问题背后的目的是我希望能够在元素上切换.sortable.由于能够看到.sortable存在,我可以调用.sortable('destroy')来删除它.

Cor*_*art 13

所有ui小部件都将其名称作为true附加到元素的容器数据中.jqueryui还添加了一个数据过滤表达式.

var $elem = $('div.sortable-container:data(sortable)');
if ($elem.length){
  // $elem contains list of elements that have sortable widget attached
}
Run Code Online (Sandbox Code Playgroud)


Rap*_*ert 5

从jQuery UI 1.8开始,每个小部件都会为Sizzle添加特殊选择器.这些是以.的形式:ui-widgetname.

要检查元素上是否存在可排序小部件,您可以使用:

if(element.is(':ui-sortable')) {
    element.sortable('destroy');
}
Run Code Online (Sandbox Code Playgroud)