如何检查某个元素是否可拖放,可拖动或其他“可见”?
你也可以使用jQuery的数据()这样的..
if ($(elem).data('draggable')) {
alert("yes");
}
else {
alert("no");
}
if ($(elem).data('fooable')) {
alert("yes");
}
else {
alert("no");
}
只是确保你实际上没有用大括号写if/else语句! – Mathletics
因此,jQuery在'.data'中注册了所有'〜bles'? –
是的,jQuery使用数据()的很多内部的东西 - http://ejohn.org/apps/workshop/adv-talk/ - CSS类检查也是可行的,我不知道哪个会更好你的情况,或从性能的角度来看。 – ZimSystem
对于可拖动的元素:
$(elem).is('.ui-draggable')
或者你可以filter
,或只选择$('.ui-draggable');
。
对于可放开,你会用.ui-droppable
,可调整大小为.ui-resizable
,可选择的是.ui-selectable
的容器虽然你选择的项目是.ui-selectee
,排序是.ui-sortable
的容器。
有什么更好的? Css类检查或检查'data'?为什么? –
这真的取决于你的实现。删除一个类很容易,删除一些数据也很容易。我感觉这个问题是使用错误方法的一个症状。 – zzzzBov
这对我的作品与jQuery 1.10.2
if ($("el").data('uiDraggable')){ //or uiDroppable
alert("draggable")
} else {
alert("not draggable")
}
或者,可以调用无参数的.data()方法
$("el").data()
应打印像
对象{uiDraggable:$(匿名函数)(匿名函数)}
在这里你可以看到对象的属性。
我使用Modernizr的:
if (Modernizr.draganddrop) {
// use drag and drop
}
为什么你不能使用实例化'droppable'或'draggable'当原来的选择使用呢? – zzzzBov
@zzzzBov,我的conrol是使用AJAX加载的,所以我不知道文档上发生了什么。 –
请显示一些代码。我不知道你在说什么。如果您通过AJAX发送一些HTML,那么为什么元素是可拖动的还是可拖放的? – zzzzBov