2013-08-13 6 views
0

У меня есть 3 блока (div). Когда в одном из этих блоков есть щелчок, выбирается div и он отображается классом.Отключить перетаскивание при остановке перетаскивания

Мне нужно, чтобы отключил draggable() элемента, так как остановка даже в функции перетаскивания. JS:

$('#llens').on("click", "#mou", function (event) { 
    $(this).parents(':eq(2)').draggable({ 
     disabled: false, 
     containment: "parent", 
     scroll: false, 
     cursor: "move", 
     delay: 200, 
     start: function (e, ui) { 
      remember = $(this).html(); 
      $(this).addClass('fantasma'); 
     }, 
     stop: function (e, ui) { 
      $(this).removeClass('fantasma'); 

      // **WHEN IS STOPPED IT MAY DISABLE THE DRAG** 
     } 


    <div id="llens"> 
     <div class="bloc professor" id="bloc_profes" style="top:40px; left:200px; width:800px; height:200px " data-actiu="true"></div> 
     <div class="bloc text" id="bloc_text" style="top:100px; left:200px; width:800px; height:100px " data-actiu="false"></div> 
     <div class="bloc alumne" id="bloc_alumnes" style="top:200px; left:200px; width:800px; height:200px " data-actiu="false"></div> 
    </div> 

DEMO: http://fiddle.jshell.net/blackersoul/47YvE/5/

+0

Я знаю, что это не JQuery UI Draggable, но посмотрите на сценарий http://pep.briangonzalez.org/ –

+0

Смотрите, если этот пост может быть любой помогите вам http://stackoverflow.com/questions/10935083/enabling-and-disabling-draggable-elements –

ответ

1

С помощью встроенного в destroy метода, например:

stop: function (e, ui) { 
      $(this).removeClass('fantasma').draggable('destroy'); 
     } 

Документация страница находится здесь: http://api.jqueryui.com/draggable/#method-destroy

полностью удаляет перетаскиваемую функциональность. Это вернет элемент обратно в исходное состояние.

Здесь работает: http://fiddle.jshell.net/47YvE/8/

+0

Я сделал то же самое с .resizable() Но это не работает. См. Демонстрацию Любая идея ??? @Joe – Despertaweb

+0

Даже используя '.resizable (" destroy ");'? Документы говорят, что должны работать, http://api.jqueryui.com/resizable/#method-destroy – Joe

0

Попробуйте изменить класс перемещаемых элементов, как:

removeClass("draggable").addClass("static"); 

Вы также можете добавить проверить, как:

if(hasClass("draggable"){ 
removeClass("draggable").addClass("static")} 
Смежные вопросы