2012-04-24 3 views
1

간단한 드래그 앤 드롭 '게임'을 개발하려고합니다. 간단히 말해서 다양한 항목을 특정 영역으로 끌어서 놓기 만하면 드래그 한 항목에 따라 정확하거나 잘못 표시됩니다. 이것은 내가 지금까지 가지고있는 것이고 전혀 작동하지 않는 이유이며, 나는 그 이유를 모른다. JS와 jQuery에 대한 나의 지식은 많이 필요하다.jQuery 드래그 앤 드롭이 작동하지 않습니다.

<script> 
$(function() { 
    $("#draggable").draggable(); 
    $("#wrong").draggable(); 

    $("#droppable").droppable({  
     drop: function(event, ui) { 
      var currentId = $(this).attr('id'); 
      if (currentId == "draggable") { 
       $(this) 
        .addClass("highlight") 
        .find("p") 
        .html("Correct! :)"); 
      } else { 
       $(this) 
        .find("p") 
        .html("Wrong! :("); 
      } 
     } 
    }); 
}); 
</script> 

지금 나는 내가 드래그 이미지 이상의 인스턴스를 필요로 일하고 있다고하지만 난 더 추가 할 때 추가 된 새로운 작동하지 않습니다.

http://jsfiddle.net/KcruJ/9/

+0

당신은 당신의 코드 jsfiddle을 할 수 있습니까? 또는 자바 스크립트 오류가 있는지 확인하기 위해 방화 광을 사용하십시오. 너의 피들에 – Kishore

+0

: 같은 아이디를 가진 요소는 원하지 않는다. 대신에 클래스를 사용하십시오 – Valentin

답변

0
var currentId = $(this).attr('id'); 
if (currentId == "draggable") 
    ... 
$(this) represents the droppable the draggable is dropped on. ui.draggable represents the draggable[1]

에 한번 같이

이 사실을 초래할하지 않습니다 :

var currentId = $(ui.draggable).attr('id'); 
if (currentId == "draggable") 
    ... 
0

이 작동 : http://jsfiddle.net/T6nu3/2/


$(this).attr('id'); 

항상 droppable을 반환합니다. 당신은 드래그 요소에 액세스해야합니다

$(ui.draggable).attr('id'); 

자세한 내용은 jQuery UI Documentation 살펴보십시오합니다.

코드 :

$(function() { 
    $("#draggable").draggable(); 
    $("#wrong").draggable(); 

    $("#droppable").droppable({ 
     drop: function(event, ui) { 
      var currentId = $(ui.draggable).attr('id'); 
      if (currentId == "draggable") { 
       $(this).addClass("highlight").find("p").html("Correct! :)"); 
      } else { 
       $(this).find("p").html("Wrong! :("); 
      } 
     } 
    }); 
}); 
+0

완벽한 감사합니다! :디 – Jiggles

관련 문제