Jquery 获取正在拖动的元素的ID
使用下面的代码,如何获取正在拖动的元素的id?然后,若元素ID不等于1,那个么将元素还原到原始位置 谢谢Jquery 获取正在拖动的元素的ID,jquery,user-interface,draggable,Jquery,User Interface,Draggable,使用下面的代码,如何获取正在拖动的元素的id?然后,若元素ID不等于1,那个么将元素还原到原始位置 谢谢 <script> //DRAG AND DROP EVENTS $(".container").delegate(".draggable","mouseenter",function() { $(".draggable").draggable({ revert : function(event, ui) {
<script> //DRAG AND DROP EVENTS
$(".container").delegate(".draggable","mouseenter",function() {
$(".draggable").draggable({
revert : function(event, ui) {
$(this).data("uiDraggable").originalPosition = {
top : 0,
left : 0
};
return !event;
},
start: function(event,ui) { // GET ID OF ELEMENT HERE IS NOT WORKING
var id = ui.draggable.attr("id");
console.log(id);
//GETTING ERROR Uncaught TypeError: Cannot read property 'attr' of undefined
//IF id <> 1 then revert to original position
}
});
});
</script>
//拖放事件
$(“.container”).delegate(“.draggable”,“mouseenter”,function()){
$(“.draggable”).draggable({
还原:功能(事件、用户界面){
$(此).data(“UIDRAGABLE”)。原始位置={
排名:0,
左:0
};
返回!事件;
},
开始:函数(事件,ui){//GET此处元素的ID不起作用
var id=ui.draggable.attr(“id”);
console.log(id);
//获取错误未捕获类型错误:无法读取未定义的属性“attr”
//如果id为1,则恢复到原始位置
}
});
});
试试这个:
start: function(event, ui) {
var id = event.target.id;
console.log(id);
}
在传递给revert选项的函数中,
this
将引用与被拖动元素对应的jQuery对象-您可以使用this.attr(“id”)
访问它的id
旁注:
- 您已经在事件处理程序中初始化了Dragable-每次 事件已触发,DragTable将重新初始化。。。你可以 要将初始化移到外侧
- 回调没有
或事件
参数,它似乎收到的唯一参数是布尔值ui
- 回调中的
参数没有可拖动的属性ui
- 这是一个很好的主意,以参考,而不是作出假设
$(“.draggable”).draggable({
还原:功能(事件、用户界面){
返回值(this.attr(“id”)==1);
}
});代码>
div{
宽度:50px;
高度:50px;
线高:50px;
保证金:5px;
文本对齐:居中;
背景:红色;
}
1.
2
谢谢,但由于某些原因,这对我来说不起作用,我想这是因为我已经初始化了事件处理程序中的可拖动部分,之所以这样做是因为这是一个ajax日历,而且事件是可拖动的,当我拖动一次时,它就不再允许我拖动了。还有其他建议吗?@DobotJr您的问题是,“如何获取被拖动元素的id?然后,如果元素id不等于1,则将元素还原到原始位置?”-我相信答案是肯定的。将初始化移动到其他不经常发生的位置。在第一次拖动过程中可能会出现错误。我还添加了一些东西-您正在使用许多不存在的东西。完整的代码可能有更多这样的东西。打开控制台并检查错误。。。或者问另一个问题,包含重现问题所需的全部代码,或者演示……我尝试了你的建议,但没有成功。得到了一个“无法读取未定义属性”或类似的问题。请您再加一点解释。。?我们应该在哪里添加此代码?在恢复功能中。。?开始回拨。。?