2016-06-29 23 views
1

私はいくつかのdivを持っています。いくつかのクラスeucountryといくつかのクラスの国と。 #euでドロップ可能になっているときはeucountryのクラスを緑色に、#nuでないときは赤にする必要があります。私はクラスの国とdivs反対を行うことができます。ここで 複数のドロップ可能な異なる色でドラッグ可能

は、私が使用しようとした

$(document).ready(function() { 
    $(".eucountry").draggable(); 


    $("#EU").droppable({ 
     drop: function(event, ui) { 

      $(ui.draggable).css("background-color", "green"); 
     } 
    }); 

    $("#not").droppable({ 
     drop: function(event, ui) { 

      $(ui.draggable).css("background-color", "red"); 
     } 
    }); 
}); 

私のJSコードでif文という。

if($("div").hasClass("eucountry){ 
    $(ui.draggable).css("background-color", "red"); 
} 

が、それは私がこの問題を解決する方法はないworking.Anyのアイデアですか?

+1

はbrexitについては、このですか? ;) –

+1

:P私たちはすべてのインスピレーションを見つける – Naomi

+0

あなたはおそらく多くの不必要なコードを持っています。私の答えをチェックしてください。 –

答えて

1

あなただけdropコールバック、例えば、内部のif文を使用する必要があり、とても近く:

$("#EU").droppable({ 
    drop: function(event, ui) { 
     if($(ui.draggable).hasClass("eucountry")){ 
      $(ui.draggable).css("background-color", "green"); 
     } 

     if($(ui.draggable).hasClass("country")){ 
      $(ui.draggable).css("background-color", "red"); 
     } 
    } 
}); 

$("#not").droppable({ 
    drop: function(event, ui) { 
     if($(ui.draggable).hasClass("eucountry")){ 
      $(ui.draggable).css("background-color", "red"); 
     } 

     if($(ui.draggable).hasClass("country")){ 
      $(ui.draggable).css("background-color", "green"); 
     } 
    } 
}); 

は、この情報がお役に立てば幸いです。

+2

実際の 'if's;)がなくなっています;) – gcampbell

+0

ifsを追加しても実際にdivの背景色は変わりません:( – Naomi

+1

これをui.draggableに変更しました。 ! – Naomi

0

ドロップが実際にドロップ可能にアイテムを追加します場合は、CSS宣言を使用することができます。

$(document).ready(function() { 
 
    $(".draggable").draggable(); 
 
    $(".droppable").droppable({ 
 
    drop: function(event, ui) { 
 
     ui.draggable.css({ 
 
     top: 0, 
 
     left: 0 
 
     }).appendTo(this); 
 
    } 
 
    }); 
 
});
div { 
 
    display: inline-block; 
 
    vertical-align: top; 
 
    margin: 5px; 
 
} 
 
.droppable { 
 
    width: 100px; 
 
    min-height: 100px; 
 
    color: #fff; 
 
    background-color: grey; 
 
} 
 
.draggable { 
 
    width: 70px; 
 
    height: 50px; 
 
    background-color: dodgerblue; 
 
} 
 
#EU .eucountry { 
 
    background-color: green; 
 
} 
 
#EU .country { 
 
    background-color: red; 
 
} 
 
#not .eucountry { 
 
    background-color: red; 
 
} 
 
#not .country { 
 
    background-color: green; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="https://code.jquery.com/ui/1.11.4/jquery-ui.min.js"></script> 
 
<div class="draggable country">Country</div> 
 
<div class="draggable eucountry">EU country</div> 
 
<br> 
 
<div id="EU" class="droppable">EU</div> 
 
<div id="not" class="droppable">NOT</div>

関連する問題