Jquery, niewrażliwość drop na następne obiekty

0

W jaki sposób mógłbym pole dropujące uczynić niewrażliwym na następne potencjalne obiekty typu draggable? Chciałbym tego dokonać w momencie zdropowania do tego pola pierwszego obiektu, co ma zastosowanie przykładowo w grach przeglądarkowych typu Gladiatus, gdzie nie można założyć powiedzmy drugich spodni, bo by się jeszcze biedak przegrzał.

Jak osiągnąć taki efekt? Próbowałem ifami i ustawianiem zmiennej, ale jak zapakuję całe zdarzenie do ifa to zdarzenie w końcu i tak się wykona ignorując mojego smutnego ifa, na którego nikt nie zwraca uwagi, a jak wcisnę ifa do "drop:", to co prawda nie dojdzie do wielu instrukcji, jednak dany przedmiot będzie i tak zdropowany, a chciałbym, żeby się grzecznie wrócił jak na dobrego dropa przystało (normalnie mi się wraca, gdy item nie wpadnie do pola droppable, ale skoro teraz wpadł...).

1

Załóżmy, że masz ludka, który jest goły i wesoły (no, powiedzmy, że ma tylko majty). Masz obiekt javascriptowy equipment, który powiedzmy wygląda tak:

var equipment = {
	helmet: undefined,
	armor: undefined
	legs: undefined,
	weapon: undefined,
	defensiveItem: undefined
}

Możesz to nawet zapisać do tego twojego ludka, na zasadzie

<div id="knight"></div>
$("#knight").data({equipment: equipment});

Teraz w momencie upuszczania itemu (na bank lib z którego korzystasz wystrzeliwuje jakiś event typu willDrop albo coś takiego) robisz walidację:

var droppingElementType = $(this).data('elementType'); // this to ten twoj element co upuszczasz
if(typeof $("#knight").data("equipment")[droppingElementType] != "undefined") { 
	// możemy ubrać gościa w droppingElementType
} else {
	// możemy podmienić element typu droppingElementType lub jakiś alert, że gość nie uraczy drugiej zbroii
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1