确定是否初始化了jQuery UI Draggable

前端之家收集整理的这篇文章主要介绍了确定是否初始化了jQuery UI Draggable前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
有没有一种方法可以确定是否已初始化jQuery UI可拖动类?

我有一系列带有“draggable1”类的div.

由于超出了本问题范围的原因,我不想提前初始化类,而是我需要在第一次选择一个div时初始化类,这是我在click事件处理程序中执行的.然后,我假设每次选择另一个div时我都不想继续重新初始化类.所以,我需要确定是否已经点击了其中一个div,并且没有必要初始化draggable.

或者我不正确地看着这个?我是否应该在每次选择另一个div时重新初始化可拖动的类?

解决方法

假设您使用的是jQuery UI 1.9(如果没有,则指定您的版本),您可以检索可拖动的div数据,以检查是否使用以下命令初始化draggable:
jQuery('.draggable1').data('ui-draggable');

您的点击处理函数将如下所示:

$('.draggable1').click(function() {
    var $div = $(this);
    if(!$div.data('ui-draggable'))
        $div.draggable();
});

请参阅此jsFiddle中的实际操作

说明:jquery UI可拖动窗口小部件基于jQuery UI widget factory,如文档的“实例”部分所述:

The widget’s instance is stored using jQuery.data() with the widget’s full name as the key.

您还可以使用:data选择器检查您的div元素是否已经绑定了一个可拖动的窗口小部件:

$div.is(':data(ui-draggable)');

猜你在找的jQuery相关文章