From c59c5eef0d4dff5fbc308833d178b94898bb284d Mon Sep 17 00:00:00 2001 From: Is Isilon Date: Sat, 27 Feb 2016 15:20:01 +0800 Subject: [PATCH] Fixed double fire on drag and click --- .eslintrc | 3 ++- index.html | 10 +++++----- js/app.js | 22 ++++++++++++++++++---- 3 files changed, 25 insertions(+), 10 deletions(-) diff --git a/.eslintrc b/.eslintrc index dd48533..3527a78 100644 --- a/.eslintrc +++ b/.eslintrc @@ -8,6 +8,7 @@ # 2, # "unix" # ], + # https://github.com/Gillespie59/eslint-plugin-angular#rules "semi": [ 2, "always" @@ -36,7 +37,7 @@ "angular/module-dependency-order": [0, {"grouped": true, "prefix": null}], "angular/module-getter": 0, "angular/module-name": 0, - "angular/module-setter": 2, + "angular/module-setter": 0, "angular/no-angular-mock": 0, "angular/no-controller": 0, "angular/no-cookiestore": 2, diff --git a/index.html b/index.html index ce41327..ec2c003 100644 --- a/index.html +++ b/index.html @@ -85,11 +85,11 @@ {{r.key}} @@ -123,8 +123,8 @@
diff --git a/js/app.js b/js/app.js index 9d2ed60..2e9419f 100644 --- a/js/app.js +++ b/js/app.js @@ -5,7 +5,7 @@ var app = (function () { Helpers.validateSaveVersion(); - var app = angular.module('scienceAlchemy', ['ngDragDrop', 'ui.grid']); + var app = angular.module('scienceAlchemy', ['ngDragDrop', 'ui.grid','ngAnimate']); // directives /** @@ -161,13 +161,26 @@ var app = (function () { function ElementController($scope, $compile, game, lab) { var vm = this; - vm.dragOptions = { + vm.jqyouiDragOptions = { revert: true, //"invalid", zIndex: 100, cancel: false, }; + vm.dragOptions = { + containment:'offset', + onStart:'rc.dragStart(r)', + onStop:'rc.dragStop(r)', + }; vm.onClick = function (card) { - game.play(card); + // a flag to preven ng-click being fired on drag + if (!card.state.dragged) + game.play(card); + }; + vm.dragStart = function(event, ui,card){ + card.state.dragged=true; + }; + vm.dragStop = function(event, ui,card){ + card.state.dragged=false; }; vm.elements = game.elements; vm.isVisible = function (item) { @@ -189,7 +202,7 @@ var app = (function () { vm.ruleCost = 300; vm.lastCards = game.lastCards; vm.incorrectCards = game.incorrectCards; - vm.dropOptions = { + vm.jqyouiDropOptions = { // accept: ".rune", addClasses: true, // greedy: true, @@ -197,6 +210,7 @@ var app = (function () { activeClass: "ui-state-hover", hoverClass: "ui-state-active", }; + vm.dropOptions={onDrop: 'dc.onDrop'}; vm.onDrop = function (event, ui) { var result = game.onDrop(event, ui, game); };