Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 获取正在拖动的元素的ID_Jquery_User Interface_Draggable - Fatal编程技术网

Jquery 获取正在拖动的元素的ID

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) {

使用下面的代码,如何获取正在拖动的元素的id?然后,若元素ID不等于1,那个么将元素还原到原始位置

谢谢

<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,则将元素还原到原始位置?”-我相信答案是肯定的。将初始化移动到其他不经常发生的位置。在第一次拖动过程中可能会出现错误。我还添加了一些东西-您正在使用许多不存在的东西。完整的代码可能有更多这样的东西。打开控制台并检查错误。。。或者问另一个问题,包含重现问题所需的全部代码,或者演示……我尝试了你的建议,但没有成功。得到了一个“无法读取未定义属性”或类似的问题。请您再加一点解释。。?我们应该在哪里添加此代码?在恢复功能中。。?开始回拨。。?