Browse Source

resolved issue Cards should have Double Click Handlers #1

Vladimir Bykov 11 years ago
parent
commit
f06c40c598

+ 3 - 0
apps/web/priv/static/app/js/okey/card.js

@@ -109,6 +109,9 @@ function CardScope(scope) {
                 value: this.value
             });
         },
+        tile: function(){
+            return [, scope.CARD_COLORS.indexOf(this.color), card.value]
+        },
         log: function() {}
     });
 

+ 27 - 11
apps/web/priv/static/app/js/okey/deck.js

@@ -40,6 +40,9 @@ function DeckScope(scope) {
                     },
                     card.on("dragstart", this.select),
                     card.on("dragmove", this.track),
+                    card.on('dblclick', function(){ 
+                        scope.apiProvider.actionDiscard(card) 
+                    }),
                     this.cards[j][i] = card, 
                     count++;
                 }
@@ -155,17 +158,30 @@ function DeckScope(scope) {
         },
 
         insert: function(tile) {
-            this.justTaken ? this.justTaken = !1 : this.each(function(card, i, j) {
-                return card ? void 0 : (card = new scope.Card({
-                    color: scope.CARD_COLORS[tile[1] - 1],
-                    value: tile[2]
-                }), card.pos = {
-                    x: i,
-                    y: j
-                }, card.on("dragstart", this.select), card.on("dragmove", this.track), this.cards[j][i] = card, 
-                card.$el.attr("transform", "translate(" + this.trfs[j][i].x + " " + this.trfs[j][i].y + ")"), 
-                card.drag(), this.$el.append(card.$el[0]), !1);
-            });
+            if(!this.justTaken){
+                this.each(function (card, i, j){
+                    if(!card){
+                        card = new scope.Card({
+                            color: scope.CARD_COLORS[tile[1]-1],
+                            value: tile[2]
+                        })
+                        card.pos = {x:i, y:j}
+                        card.on('dragstart', this.select)
+                        card.on('dragmove', this.track)
+                        card.on('dblclick', function(){ 
+                            scope.apiProvider.actionDiscard(card) 
+                        })                     
+                        this.cards[j][i] = card
+                        card.$el.attr('transform', 'translate(' + this.trfs[j][i].x + ' ' + this.trfs[j][i].y + ')')
+                        card.drag()
+                        this.$el.append(card.$el[0])
+                        return false
+                    }
+                })
+            }
+            else {
+                this.justTaken = false
+            }
         },
 
         length: function() {

+ 12 - 2
apps/web/priv/static/app/js/okey/okey.js

@@ -28,7 +28,10 @@ function PostLoad()
         centralCard.on("dragstart", deck.select).on("dragmove", removeFadeOut)
                                             .on("dragstop", addFadeOut)
                                             .on("dragmove", deck.track)
-                                            .on("revert",   fadeOut);
+                                            .on("revert",   fadeOut)
+                                            .on('dblclick', function(){
+                                                scope.apiProvider.actionTake(centralCard) 
+                                            })
 
         deck.$el.append(centralCard.$el[0]);
         centralCard.drag();
@@ -123,7 +126,14 @@ function PostLoad()
                 var card = cards[cards.length - 1];
                 deck.$el.append(card.$el[0]), card.$el.attr({
                     transform: "translate(16 -65)"
-                }), card.dragHandler.enable(), card.on("dragstart", deck.select), card.on("dragmove", deck.track);
+                }), 
+                card.dragHandler.enable(), 
+                card
+                    .on("dragstart", deck.select)
+                    .on("dragmove", deck.track)
+                    .on('dblclick', function(){
+                        scope.apiProvider.actionDiscard(card) 
+                    });
             }
             deck.length() < 15 ? (centralCard.dragHandler.enable(), centralCard.$el.on(document.createTouch ? "touchstart" : "mousedown", fadeIn).on(document.createTouch ? "touchend" : "mouseup", fadeOut), 
             centralCard.on("dragmove", removeFadeOut).on("dragstop", addFadeOut).on("revert", fadeOut)) : (centralCard.dragHandler.disable(),