2012-11-30 4 views
2

div의 자식 요소를 드래그 할 수 없게하려고합니다. 그리고 지금까지 모든 장애인들에게 수동으로 들어가야 만합니다. 진실한 사건들은 고통 스럽습니다. 내가 선택한 주요 요소 만 드래그 할 수 없도록 모든 요소를 ​​선택하는 방법은 무엇입니까? 내가 지금까지 있었다 무엇jQuery draggable ui children 요소 비활성화

$(function() { 
    $("#profile-advanced-right div").draggable(); 
$("#profile-advanced-left div").draggable(); 
$(".main-head").draggable({disabled:true}); 
$(".main-content").draggable({disabled:true}); 
$(".h3").draggable({disabled:true}); 
$(".subtitle").draggable({disabled:true}); 
$('.ui-state-disabled').css({'opacity':'1'}); 
}); 

, html로는

<div id="profile-advanced-right"> 
    <div class="module main"> 
    <div class="main-head"> 
    <span class="h3">Title</span> 
</div> 
<div class="main-content"> 
    <div> 
    yadda 
</div> 
</div> 
</div> 

답변

3

jQuery 선택기 구문을 사용하는 draggable의 cancel 속성을 사용하여 자식 요소를 드래그 할 수 없도록 차단할 수 있다고 생각합니다. 모든 하위 요소를 드래그 할 수 없게하려면 다음을 사용하십시오.

$('#profile-advanced-right').draggable({ cancel: '#profile-advanced-right' > * }); 
1

같은 당신의 코드 예제를 편집() 메소드 아이를 시도하고, 뭔가 같은 :

$(function() { 
    $("#profile-advanced-right div").draggable(); 
    $("#profile-advanced-left div").draggable(); 
    $("#profile-advanced-right div").children().draggable({disabled:true}); 
    $("#profile-advanced-left div").children().draggable({disabled:true}); 
    $('.ui-state-disabled').css({'opacity':'1'}); 
}); 

추가 정보 http://api.jquery.com/children/

원하는 UX를 모르는 경우에만 핸들을 사용할 수도 있습니다 http://jqueryui.com/draggable/#handle

+0

더 잘 작동하지만 일부 요소는 사용 중지되지 않습니다. 형제라고 생각 하나? 그것은 작동하지 않는 div를 생성합니다. – EasyBB

+0

나는 필요한만큼 일할 수있는 모든 것을 얻었습니다. 수동으로 일부 작업을 비활성화해야했지만 괜찮습니다. Jim Frenette에게 감사드립니다! – EasyBB