首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery的可拖函数

jQuery的可拖函数
EN

Stack Overflow用户
提问于 2013-08-26 22:45:08
回答 2查看 45关注 0票数 0

我使用json文件中的数据创建和定位一些div元素(办公桌),并将可拖放的jQuery函数应用于它们。这是很好的工作,除了一件小事,当你去点击和移动的div,他们跳下屏幕大约一英寸。为什么会发生这种情况,如何解决呢?谢谢:)。

代码语言:javascript
复制
$(document).ready(function(){
$( "a" ).click(function( event ) {

    alert( "Thanks for visiting!" );
    $("#desk").draggable();
});
$.getJSON("static/js/desks_dc.json", function(data){
    console.log(data);

    factor = 1.228;

    for(var i = 0; i< data.desks.length; ++i){
        var div = document.createElement("div");
        var desk_label = (data.desks[i].id);
        div.style.position ='absolute';
        div.style.height= '15px';
        div.style.width=  '25px';
        div.style.textAlign= 'center';
        div.style.color='#999998';
        div.style.fontFamily= 'Verdana, Arial, Sans-Serif';
        div.style.top = (data.desks[i].top-522.529)*factor+'px';
        div.style.left = (data.desks[i].top-45.882)*factor+'px';
        div.style.backgroundColor='#CCCCCC';
        div.style.text= desk_label;


            /*Choose Desk Color*/
            if(data.desks[i].research == "Thermal")
            {
                div.style.backgroundColor='#F03005';
            }
            else if(data.desks[i].research == "Fluids")
            {
                div.style.backgroundColor='#0520F0';
            }
            else if(data.desks[i].research == "Solids")
            {
                div.style.backgroundColor='#15D615';
            }
            else if(data.desks[i].research == "Materials")
            {
                div.style.backgroundColor='#E8F005';
            }
            else if(data.desks[i].research == "Mechatronics")
            {
                div.style.backgroundColor='#6324B5';
            }
            else{
            }

            div.id = 'desk';
            $(div).draggable();
            document.body.appendChild(div);
        }
});

});
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-08-26 22:56:37

首先,您要应用$.draggable()两次,不需要在$(a).click()中再次使用它。

另外,使用绝对定位的元素来实现这一点也不是一个好主意,看看是否可以将您的<div>放在一个绝对定位的容器中,并将其保存在相对位置中。

票数 0
EN

Stack Overflow用户

发布于 2013-08-26 23:01:29

您需要构造这个结构,这样div只有在它被附加到DOM之后才会成为可拖的,而不是以前。也许只需将其附加到ajax调用中,然后在click事件中使其可拖放。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18454247

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档