为什么jquery UI可拖动不适用于getElementById

时间:2017-06-20 18:21:10

标签: javascript jquery jquery-ui

我认为2是相同的。

$("#SomeId")

document.getElementById("SomeId")

我认为我错了,因为以下工作

$("#SomeId").draggable();

这两者都没有

document.getElementById("SomeId").draggable();

var x = document.getElementById("SomeId");
x.draggable();

我的问题是这里的区别是什么? JQuery是否采用了一些技巧和注册方式,只有通过JQuery选择的元素才能与JqueryUI一起使用?

到目前为止,我的项目只是vanilla Javascript,但现在我必须使用JQuery,所以我正在迁移。我知道如何解决这个问题并提出一些修复方法,但我的问题是为什么这不起作用,因为理解更重要。

1 个答案:

答案 0 :(得分:3)

这不起作用,因为jquery选择器不仅仅是元素。它返回一个jquery对象,允许你对它们执行jquery-ee,比如.draggable()

如果您想使用javascript getElementById()方法,可以将上述示例更改为:

var x = document.getElementById("SomeId");
$(x).draggable();

将普通的javascript对象转换为jquery对象。

如果你分别使用jquery对象和js dom对象的console.log(),你会发现它们非常不同。