2011-08-23 165 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>