2011-08-23 159 views
2

我包含了jQuery库,之后jQuery UI库,它仍然没有工作。使用ChromejQuery UI Draggable不工作

代码如下:

<script src="js/jquery-1.6.2.min.js" type="text/javascript"></script> 
<script src="js/jquery-ui-1.8.16.custom.min.js" type="type/javascript"></script> 
<script type="text/javascript"> 
    $(function() { 
     $(".drag").draggable(); 
    }); 
</script> 

<div id="aboutBox" class="boxLook boxBg drag"></div> 

???无法找到任何解决方案。调试器说可拖动的方法不存在。但ive添加了jquery和jquery ui,路径是正确的!它只是不工作

+2

您正在使用的jquery ui js文件是否包含可拖动模块?尝试从他们的网站重新创建您的jQuery UI文件,并确保包含可拖动的文件。 – Kokos

+0

我打开jquery ui JS文件并搜索可拖动并存在,我还将ui-draggable添加到about框。还没有 –

回答

11

你有这些问题之一:

  1. 你的jQuery或jQuery用户界面的JavaScript路径文件是错误的
  2. 你的jQuery UI不包括拖动
  3. 你的jQuery或jQuery用户界面的Javascript文件已损坏
  4. 您的div没有样式且为空,因此没有任何东西可以拖动
  5. 某些内容与您的jQuery或jQuery UI发生冲突,因此它不起作用

你的代码是正确的,它应该工作:

http://jsfiddle.net/u7zWA/

+0

好吧,勉强我得到它的工作。不是通过我的项目添加脚本,而是从“http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js”获取代码并且它可行! Yaay!但现在我有另一个问题,我可以拖动分区。但是当我释放div时,它会返回到它的原始位置:s –

+0

'draggable({revert:false})',如果我的回答帮助你请取消并接受:) – Kokos

+5

6.你在加载你的脚本之前jquery – ErichBSchulz

2

试试这个:

<script src="js/jquery-1.6.2.min.js" type="text/javascript"></script> 
<script src="js/jquery-ui-1.8.16.custom.min.js" type="type/javascript"></script> 
<script src="js/ui/jquery.ui.draggable.js" type="type/javascript"></script> 
<script type="text/javascript"> 
    $(function() { 
     $(".drag").draggable(); 
    }); 
</script> 

<div id="aboutBox" class="boxLook boxBg drag"></div> 

你必须可拖动组件实现到您的项目,包括它! http://jqueryui.com/download

+0

它可能包含在'js/jquery-ui-1.8.16.custom.min.js'中。 “custom”是用于表示jQuery UI库自定义构建的后缀。 – donut

+0

他让我微笑了一下。 –

0

检查您的可拖动对象是否已经加载到视口中。如果不是,它将无法正常工作。

我的建议是添加此代码

<script type="text/javascript">    
$(function() {       
    $(".drag").draggable({ helper:'clone' }); 
}); 
</script> 

刚过拖动对象,以绝对确保一切都在正确的时间加载。

当你确定一切正常时,你就可以重构。

1

我的问题是,我有另一个事件绑定到mousemove包含e.stopPropagation();,这阻止了.draggable()鼠标代码的工作。

$(document).on('mousemove', '*', function (e) { MyFunction(e); }); 

function MyFunction (sender, e) 
{ 
    e.stopPropagation(); 
    ... 
} 

解决的办法是删除e.stopPropagation();并重新评估其执行情况。

+0

控制台输出:“Uncaught TypeError:无法读取未定义的属性'stopPropagation'。你能指出一个理由吗? –

+0

检查您是否在函数树中传递了'e' –

0

我通过将对话框的位置设置为固定来修复它。它的工作就像一个神奇的,压力小时后:

.ui-dialog { 
    position: fixed; 
} 
0

的另一个潜在原因是,你已经变成所有拖动事件关闭别的地方在你的代码,使用这样的事情:

window.ondragstart = function() { return false; }; 

这将停止触发jQuery UI拖动事件。

1

在我的情况下,我使用的是旧版本的jQuery UI。我用以下内容替换了旧的参考文献,并且所有内容都按预期开始工作

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.9.1/jquery-ui.min.js"></script>