jQuery UI 에서 draggable 과 droppable 사용시, "'data(...).options'은(는) null 이거나 개체가 아닙니다." 메시지가 나온다면..
옵션을 여러번 사용하지 말고, json 방식으로 한 방에 사용하면 어떨까 싶네요.
idDrop1 영역에 idDrag1 에 있는 이미지를 가져다 맞추는 퍼즐기능에서..
정확한 영역에 drop 한 다음,
idDrag1 의 이미지를 다른 곳에서 사용하지 못하도록 revert invalid 와 disable 세팅을 했더니,
idDrag1 에 사용된 이미지에 opacity 가 먹어서 투명하게 되었어요.
opacity 옵션을 수정해도 disable 처리된 이후에는 투명도를 수정할 수가 없더라구요.
그래서 destroy 옵션을 세팅하니까 투명도 문제는 해결이 되는데,
이렇게 하니까 "'data(...).options..." 오류가 뜨잖아요.
이리저리 해 보고 찾아보고 했는데, 해결을 못하다가.. 옵션을 한방에 날리니까 해결이 되네요.
아래 코드는 자바스크립트 오류가 발생하는 코드.
<div id="idDrag1" num="1" class="draggable">..</div>
<div id="idDrop1">..</div>
<script>
$(document).ready(function(){
$('.draggable').draggable({ revert: "valid" });
$('#idDrop1').droppable({
drop:function(e,ui){
if(ui.draggable.attr('num')==1){
$('#idDrag1').draggable({ revert:'invalid' }).draggable('destroy'); // 오류 발생
}
}
});
});
</script>
<div id="idDrag1" num="1" class="draggable">..</div>
<div id="idDrop1">..</div>
<script>
$(document).ready(function(){
$('.draggable').draggable({ revert: "valid" });
$('#idDrop1').droppable({
drop:function(e,ui){
if(ui.draggable.attr('num')==1){
$('#idDrag1').draggable({ revert:'invalid', 'destroy':true }); // 오류 없어짐
}
}
});
});
</script>
더불어서.. 특정 영역이 해당 영역에 들어갈 이미지 보다 커서, 영역 중앙에 표시가 되게 하려면..
상기 코드에서 .css({left:.., top:..}) 를 추가하면 되겠네요.
상기 코드는..
'Local Oriented > jQuery' 카테고리의 다른 글
jQuery 구조와 기능 (0) | 2014.03.27 |
---|---|
form 문에서 Enter(엔터, 리턴 Return) 작동하지 않게 하기.. (0) | 2014.03.26 |
event properties 가 Chrome 에선 작동하지 않네요, 적어도 jquery-1.8.3 에선.. (0) | 2014.02.10 |
Flick 기능을 PC 와 스마트폰 양쪽에서 적용 (0) | 2013.06.14 |
jQuery noConflict, 다른 JS F/W 과 혼용시 충돌방지 (2) | 2013.06.07 |