diff --git a/common/static/js/capa/drag_and_drop/base_image.js b/common/static/js/capa/drag_and_drop/base_image.js
index 9cee42feb2..9c7c217214 100644
--- a/common/static/js/capa/drag_and_drop/base_image.js
+++ b/common/static/js/capa/drag_and_drop/base_image.js
@@ -16,18 +16,26 @@ define(['logme'], function (logme) {
'style=" ' +
'position: relative; ' +
'margin-bottom: 25px; ' +
+ 'margin-left: auto; ' +
+ 'margin-right: auto; ' +
'" ' +
'>'
);
- state.baseImageEl = $(
- '
'
+ state.baseImageEl = $('
');
+ state.baseImageEl.attr(
+ 'src',
+ state.config.imageDir + '/' + state.config.base_image
);
- state.baseImageEl.appendTo(baseImageElContainer);
+ state.baseImageEl.load(function () {
+ baseImageElContainer.css('width', this.width);
+ baseImageElContainer.css('height', this.height);
- baseImageElContainer.appendTo(state.containerEl);
+ state.baseImageEl.appendTo(baseImageElContainer);
+ baseImageElContainer.appendTo(state.containerEl);
+
+ state.baseImageLoaded = true;
+ });
}
});
diff --git a/common/static/js/capa/drag_and_drop/draggables.js b/common/static/js/capa/drag_and_drop/draggables.js
index 0800ce4c6b..78fc47bf75 100644
--- a/common/static/js/capa/drag_and_drop/draggables.js
+++ b/common/static/js/capa/drag_and_drop/draggables.js
@@ -21,8 +21,6 @@ define(['logme', 'update_input'], function (logme, updateInput) {
state.currentMovingDraggable = null;
$(document).mousemove(function (event) {
- normalizeEvent(event);
-
if (state.currentMovingDraggable !== null) {
state.currentMovingDraggable.iconEl.css(
'left',
@@ -38,6 +36,12 @@ define(['logme', 'update_input'], function (logme, updateInput) {
);
if (state.currentMovingDraggable.labelEl !== null) {
+ state.currentMovingDraggable.labelEl.css(
+ 'left',
+ event.pageX -
+ state.baseImageEl.offset().left -
+ state.currentMovingDraggable.labelWidth * 0.5
+ );
state.currentMovingDraggable.labelEl.css(
'top',
event.pageY -
@@ -45,12 +49,6 @@ define(['logme', 'update_input'], function (logme, updateInput) {
state.currentMovingDraggable.iconHeight * 0.5 +
5
);
- state.currentMovingDraggable.labelEl.css(
- 'left',
- event.pageX -
- state.baseImageEl.offset().left -
- state.currentMovingDraggable.labelWidth * 0.5
- );
}
}
});
@@ -99,23 +97,39 @@ define(['logme', 'update_input'], function (logme, updateInput) {
if (draggableObj.iconWidth >= draggableObj.iconHeight) {
draggableObj.iconWidthSmall = 60;
- draggableObj.iconHeightSmall = draggableObj.iconWidthSmall * (draggableObj.iconHeight / draggableObj.iconWidth);
+ draggableObj.iconHeightSmall =
+ draggableObj.iconWidthSmall *
+ (draggableObj.iconHeight / draggableObj.iconWidth);
} else {
draggableObj.iconHeightSmall = 60;
- draggableObj.iconWidthSmall = draggableObj.iconHeightSmall * (draggableObj.iconWidth / draggableObj.iconHeight);
+ draggableObj.iconWidthSmall =
+ draggableObj.iconHeightSmall *
+ (draggableObj.iconWidth / draggableObj.iconHeight);
}
draggableObj.iconEl.css('position', 'absolute');
- draggableObj.iconEl.css('width', draggableObj.iconWidthSmall);
- draggableObj.iconEl.css('height', draggableObj.iconHeightSmall);
+ draggableObj.iconEl.css(
+ 'width',
+ draggableObj.iconWidthSmall
+ );
+ draggableObj.iconEl.css(
+ 'height',
+ draggableObj.iconHeightSmall
+ );
- draggableObj.iconEl.css('left', 50 - draggableObj.iconWidthSmall * 0.5);
+ draggableObj.iconEl.css(
+ 'left',
+ 50 - draggableObj.iconWidthSmall * 0.5
+ );
if (obj.label.length > 0) {
draggableObj.iconEl.css('top', 5);
} else {
- draggableObj.iconEl.css('top', 50 - draggableObj.iconHeightSmall * 0.5);
+ draggableObj.iconEl.css(
+ 'top',
+ 50 - draggableObj.iconHeightSmall * 0.5
+ );
}
draggableObj.iconEl.appendTo(draggableObj.containerEl);
@@ -131,12 +145,20 @@ define(['logme', 'update_input'], function (logme, updateInput) {
''
);
- draggableObj.labelEl.appendTo(draggableObj.containerEl);
+ draggableObj.labelEl.appendTo(
+ draggableObj.containerEl
+ );
draggableObj.labelWidth = draggableObj.labelEl.width();
- draggableObj.labelEl.css('left', 50 - draggableObj.labelWidth * 0.5);
- draggableObj.labelEl.css('top', 5 + draggableObj.iconHeightSmall + 5);
+ draggableObj.labelEl.css(
+ 'left',
+ 50 - draggableObj.labelWidth * 0.5
+ );
+ draggableObj.labelEl.css(
+ 'top',
+ 5 + draggableObj.iconHeightSmall + 5
+ );
draggableObj.labelEl.mousedown(mouseDown);
draggableObj.labelEl.mouseup(mouseUp);
@@ -168,8 +190,14 @@ define(['logme', 'update_input'], function (logme, updateInput) {
draggableObj.iconWidthSmall = draggableObj.iconWidth;
draggableObj.iconHeightSmall = draggableObj.iconHeight;
- draggableObj.iconEl.css('left', 50 - draggableObj.iconWidthSmall * 0.5);
- draggableObj.iconEl.css('top', 50 - draggableObj.iconHeightSmall * 0.5);
+ draggableObj.iconEl.css(
+ 'left',
+ 50 - draggableObj.iconWidthSmall * 0.5
+ );
+ draggableObj.iconEl.css(
+ 'top',
+ 50 - draggableObj.iconHeightSmall * 0.5
+ );
} else {
// If no icon and no label, don't create a draggable.
return;
@@ -189,8 +217,12 @@ define(['logme', 'update_input'], function (logme, updateInput) {
draggableObj.x = -1;
draggableObj.y = -1;
- draggableObj.setInContainer = function (val) { inContainer = val; };
- draggableObj.setOnTarget = function (val) { onTarget = val; };
+ draggableObj.setInContainer = function (val) {
+ inContainer = val;
+ };
+ draggableObj.setOnTarget = function (val) {
+ onTarget = val;
+ };
state.draggables.push(draggableObj);
@@ -204,26 +236,58 @@ define(['logme', 'update_input'], function (logme, updateInput) {
function mouseDown(event) {
if (mousePressed === false) {
- state.currentMovingDraggable = draggableObj;
- normalizeEvent(event);
+ // So that the browser does not perform a default drag.
+ // If we don't do this, each drag operation will
+ // potentially cause the highlghting of the dragged element.
+ event.preventDefault();
+ // If this draggable is just being dragged out of the
+ // container, we must perform some additional tasks.
if (inContainer === true) {
draggableObj.containerEl.hide();
draggableObj.iconEl.detach();
-
- draggableObj.iconEl.css('width', draggableObj.iconWidth);
- draggableObj.iconEl.css('height', draggableObj.iconHeight);
-
- draggableObj.iconEl.css('left', event.pageX - state.baseImageEl.offset().left - draggableObj.iconWidth * 0.5);
- draggableObj.iconEl.css('top', event.pageY - state.baseImageEl.offset().top - draggableObj.iconHeight * 0.5);
- draggableObj.iconEl.appendTo(state.baseImageEl.parent());
+ draggableObj.iconEl.css(
+ 'width',
+ draggableObj.iconWidth
+ );
+ draggableObj.iconEl.css(
+ 'height',
+ draggableObj.iconHeight
+ );
+ draggableObj.iconEl.css(
+ 'left',
+ event.pageX -
+ state.baseImageEl.offset().left -
+ draggableObj.iconWidth * 0.5
+ );
+ draggableObj.iconEl.css(
+ 'top',
+ event.pageY -
+ state.baseImageEl.offset().top -
+ draggableObj.iconHeight * 0.5
+ );
+ draggableObj.iconEl.appendTo(
+ state.baseImageEl.parent()
+ );
if (draggableObj.labelEl !== null) {
draggableObj.labelEl.detach();
- draggableObj.labelEl.css('left', event.pageX - state.baseImageEl.offset().left - draggableObj.labelWidth * 0.5);
- draggableObj.labelEl.css('top', event.pageY - state.baseImageEl.offset().top + draggableObj.iconHeight * 0.5 + 5);
- draggableObj.labelEl.appendTo(state.baseImageEl.parent());
+ draggableObj.labelEl.css(
+ 'left',
+ event.pageX -
+ state.baseImageEl.offset().left -
+ draggableObj.labelWidth * 0.5
+ );
+ draggableObj.labelEl.css(
+ 'top',
+ event.pageY -
+ state.baseImageEl.offset().top +
+ draggableObj.iconHeight * 0.5 + 5
+ );
+ draggableObj.labelEl.appendTo(
+ state.baseImageEl.parent()
+ );
}
inContainer = false;
@@ -235,7 +299,7 @@ define(['logme', 'update_input'], function (logme, updateInput) {
draggableObj.iconEl.css('z-index', '1000');
mousePressed = true;
- event.preventDefault();
+ state.currentMovingDraggable = draggableObj;
}
}
@@ -249,8 +313,42 @@ define(['logme', 'update_input'], function (logme, updateInput) {
function mouseMove() {
if (mousePressed === true) {
- draggableObj.iconEl.css('left', event.pageX - state.baseImageEl.offset().left - draggableObj.iconWidth * 0.5);
- draggableObj.iconEl.css('top', event.pageY - state.baseImageEl.offset().top - draggableObj.iconHeight * 0.5);
+ // Because we have also attached a 'mousemove' event to the
+ // 'document' (that will do the same thing), let's tell the
+ // browser not to bubble up this event. The attached event
+ // on the 'document' will only be triggered when the mouse
+ // pointer leaves the draggable while it is in the middle
+ // of a drag operation (user moves the mouse very quickly).
+ event.stopPropagation();
+
+ draggableObj.iconEl.css(
+ 'left',
+ event.pageX -
+ state.baseImageEl.offset().left -
+ draggableObj.iconWidth * 0.5
+ );
+ draggableObj.iconEl.css(
+ 'top',
+ event.pageY -
+ state.baseImageEl.offset().top -
+ draggableObj.iconHeight * 0.5
+ );
+
+ if (draggableObj.labelEl !== null) {
+ draggableObj.labelEl.css(
+ 'left',
+ event.pageX -
+ state.baseImageEl.offset().left -
+ draggableObj.labelWidth * 0.5
+ );
+ draggableObj.labelEl.css(
+ 'top',
+ event.pageY -
+ state.baseImageEl.offset().top +
+ draggableObj.iconHeight * 0.5 +
+ 5
+ );
+ }
}
}
@@ -280,11 +378,22 @@ define(['logme', 'update_input'], function (logme, updateInput) {
state.numDraggablesInSlider += 1;
}
} else {
+ logme(
+ 'baseImageEl.width = ' + state.baseImageEl.width() + '; ' +
+ 'baseImageEl.height = ' + state.baseImageEl.height()
+ );
+
if (
(offsetIE.left < 0) ||
- (offsetIE.left + draggableObj.iconWidth > state.baseImageEl.width()) ||
+ (
+ offsetIE.left + draggableObj.iconWidth >
+ state.baseImageEl.width()
+ ) ||
(offsetIE.top < 0) ||
- (offsetIE.top + draggableObj.iconHeight > state.baseImageEl.height())
+ (
+ offsetIE.top + draggableObj.iconHeight >
+ state.baseImageEl.height()
+ )
) {
moveBackToSlider();
@@ -295,8 +404,10 @@ define(['logme', 'update_input'], function (logme, updateInput) {
} else {
correctZIndexes();
- draggableObj.x = offsetIE.left + draggableObj.iconWidth * 0.5;
- draggableObj.y = offsetIE.top + draggableObj.iconHeight * 0.5;
+ draggableObj.x =
+ offsetIE.left + draggableObj.iconWidth * 0.5;
+ draggableObj.y =
+ offsetIE.top + draggableObj.iconHeight * 0.5;
}
}
@@ -331,16 +442,28 @@ define(['logme', 'update_input'], function (logme, updateInput) {
for (c1 = 0; c1 < state.targets.length; c1 += 1) {
target = state.targets[c1];
- if (offsetIE.top + draggableObj.iconHeight * 0.5 < target.offset.top) {
+ if (
+ offsetIE.top + draggableObj.iconHeight * 0.5 <
+ target.offset.top
+ ) {
continue;
}
- if (offsetIE.top + draggableObj.iconHeight * 0.5 > target.offset.top + target.h) {
+ if (
+ offsetIE.top + draggableObj.iconHeight * 0.5 >
+ target.offset.top + target.h
+ ) {
continue;
}
- if (offsetIE.left + draggableObj.iconWidth * 0.5 < target.offset.left) {
+ if (
+ offsetIE.left + draggableObj.iconWidth * 0.5 <
+ target.offset.left
+ ) {
continue;
}
- if (offsetIE.left + draggableObj.iconWidth * 0.5 > target.offset.left + target.w) {
+ if (
+ offsetIE.left + draggableObj.iconWidth * 0.5 >
+ target.offset.left + target.w
+ ) {
continue;
}
@@ -358,7 +481,10 @@ define(['logme', 'update_input'], function (logme, updateInput) {
// another, then we need to remove it's ID from the
// previous target's draggables list, and add it to the
// new target's draggables list.
- if ((onTarget !== null) && (onTarget.id !== target.id)) {
+ if (
+ (onTarget !== null) &&
+ (onTarget.id !== target.id)
+ ) {
removeObjIdFromTarget();
onTarget = target;
target.draggable.push(draggableObj.id);
@@ -383,12 +509,28 @@ define(['logme', 'update_input'], function (logme, updateInput) {
offset = 1;
}
- draggableObj.iconEl.css('left', target.offset.left + 0.5 * target.w - draggableObj.iconWidth * 0.5 + offset);
- draggableObj.iconEl.css('top', target.offset.top + 0.5 * target.h - draggableObj.iconHeight * 0.5 + offset);
+ draggableObj.iconEl.css(
+ 'left',
+ target.offset.left + 0.5 * target.w -
+ draggableObj.iconWidth * 0.5 + offset
+ );
+ draggableObj.iconEl.css(
+ 'top',
+ target.offset.top + 0.5 * target.h -
+ draggableObj.iconHeight * 0.5 + offset
+ );
if (draggableObj.labelEl !== null) {
- draggableObj.labelEl.css('left', target.offset.left + 0.5 * target.w - draggableObj.labelWidth * 0.5 + offset);
- draggableObj.labelEl.css('top', target.offset.top + 0.5 * target.h + draggableObj.iconHeight * 0.5 + 5 + offset);
+ draggableObj.labelEl.css(
+ 'left',
+ target.offset.left + 0.5 * target.w -
+ draggableObj.labelWidth * 0.5 + offset
+ );
+ draggableObj.labelEl.css(
+ 'top',
+ target.offset.top + 0.5 * target.h +
+ draggableObj.iconHeight * 0.5 + 5 + offset
+ );
}
}
@@ -406,7 +548,10 @@ define(['logme', 'update_input'], function (logme, updateInput) {
var c1;
for (c1 = 0; c1 < state.draggables.length; c1++) {
- if (draggableObj.oldZIndex < state.draggables[c1].zIndex) {
+ if (
+ draggableObj.oldZIndex <
+ state.draggables[c1].zIndex
+ ) {
state.draggables[c1].zIndex -= 1;
state.draggables[c1].iconEl.css(
'z-index',
@@ -427,40 +572,50 @@ define(['logme', 'update_input'], function (logme, updateInput) {
draggableObj.iconEl.detach();
- draggableObj.iconEl.css('width', draggableObj.iconWidthSmall);
- draggableObj.iconEl.css('height', draggableObj.iconHeightSmall);
+ draggableObj.iconEl.css(
+ 'width',
+ draggableObj.iconWidthSmall
+ );
+ draggableObj.iconEl.css(
+ 'height',
+ draggableObj.iconHeightSmall
+ );
- draggableObj.iconEl.css('left', 50 - draggableObj.iconWidthSmall * 0.5);
+ draggableObj.iconEl.css(
+ 'left',
+ 50 - draggableObj.iconWidthSmall * 0.5
+ );
if (draggableObj.labelEl !== null) {
draggableObj.iconEl.css('top', 5);
} else {
- draggableObj.iconEl.css('top', 50 - draggableObj.iconHeightSmall * 0.5);
+ draggableObj.iconEl.css(
+ 'top',
+ 50 - draggableObj.iconHeightSmall * 0.5
+ );
}
draggableObj.iconEl.appendTo(draggableObj.containerEl);
if (draggableObj.labelEl !== null) {
draggableObj.labelEl.detach();
- draggableObj.labelEl.css('left', 50 - draggableObj.labelWidth * 0.5);
- draggableObj.labelEl.css('top', 5 + draggableObj.iconHeightSmall + 5);
- draggableObj.labelEl.appendTo(draggableObj.containerEl);
+ draggableObj.labelEl.css(
+ 'left',
+ 50 - draggableObj.labelWidth * 0.5
+ );
+ draggableObj.labelEl.css(
+ 'top',
+ 5 + draggableObj.iconHeightSmall + 5
+ );
+ draggableObj.labelEl.appendTo(
+ draggableObj.containerEl
+ );
}
inContainer = true;
}
}
}
-
- // In firefox the event does not have a proper pageX and pageY
- // coordinates.
- function normalizeEvent(event) {
- if(!event.offsetX) {
- event.offsetX = (event.pageX - $(event.target).offset().left);
- event.offsetY = (event.pageY - $(event.target).offset().top);
- }
- return event;
- }
}
});
diff --git a/common/static/js/capa/drag_and_drop/main.js b/common/static/js/capa/drag_and_drop/main.js
index 0ccfb47051..ec186066c1 100644
--- a/common/static/js/capa/drag_and_drop/main.js
+++ b/common/static/js/capa/drag_and_drop/main.js
@@ -60,13 +60,22 @@ define(
Container(state);
BaseImage(state);
- Targets(state);
- Scroller(state);
- Draggables(state);
- // Update the input element, checking first that it is not filled with
- // an answer from the server.
- updateInput(state, true);
+ (function addContent() {
+ if (state.baseImageLoaded !== true) {
+ setTimeout(addContent, 50);
+
+ return;
+ }
+
+ Targets(state);
+ Scroller(state);
+ Draggables(state);
+
+ // Update the input element, checking first that it is not filled with
+ // an answer from the server.
+ updateInput(state, true);
+ }());
}
});
diff --git a/common/static/js/capa/drag_and_drop/state.js b/common/static/js/capa/drag_and_drop/state.js
index c3a4d3c4ac..99dd7dc8e4 100644
--- a/common/static/js/capa/drag_and_drop/state.js
+++ b/common/static/js/capa/drag_and_drop/state.js
@@ -11,10 +11,7 @@ define([], function () {
return {
'problemId': problemId,
- // Will indicate when all targetsand draggables have been loaded,
- // processed, and postioned intially.
- 'targetsLoaded': false,
- 'draggablesLoaded': false,
+ 'baseImageLoaded': false,
'numDraggablesInSlider': 0
};
diff --git a/common/static/js/capa/drag_and_drop/update_input.js b/common/static/js/capa/drag_and_drop/update_input.js
index df7c5edb2e..2c6a5ee364 100644
--- a/common/static/js/capa/drag_and_drop/update_input.js
+++ b/common/static/js/capa/drag_and_drop/update_input.js
@@ -39,7 +39,8 @@ define(['logme'], function (logme) {
for (c1 = 0; c1 < state.targets.length; c1++) {
for (c2 = 0; c2 < state.targets[c1].draggable.length; c2++) {
tempObj = {};
- tempObj[state.targets[c1].draggable[c2]] = state.targets[c1].id;
+ tempObj[state.targets[c1].draggable[c2]] =
+ state.targets[c1].id;
draggables.push(tempObj);
}
@@ -80,20 +81,37 @@ define(['logme'], function (logme) {
}
if (
- ((typeof answer.use_targets === 'boolean') && (answer.use_targets === true)) ||
- ((typeof answer.use_targets === 'string') && (answer.use_targets === 'true'))
+ (
+ (typeof answer.use_targets === 'boolean') &&
+ (answer.use_targets === true)
+ ) ||
+ (
+ (typeof answer.use_targets === 'string') &&
+ (answer.use_targets === 'true')
+ )
) {
for (c1 = 0; c1 < answer.draggables.length; c1++) {
for (draggableId in answer.draggables[c1]) {
- if ((draggable = getDraggableById(draggableId)) === null) {
- logme('ERROR: In answer there exists a draggable ID "' + draggableId + '". No draggable with this ID could be found.');
+ if (
+ (draggable = getDraggableById(draggableId)) ===
+ null
+ ) {
+ logme(
+ 'ERROR: In answer there exists a ' +
+ 'draggable ID "' + draggableId + '". No ' +
+ 'draggable with this ID could be found.'
+ );
continue;
}
targetId = answer.draggables[c1][draggableId];
if ((target = getTargetById(targetId)) === null) {
- logme('ERROR: In answer there exists a target ID "' + targetId + '". No target with this ID could be found.');
+ logme(
+ 'ERROR: In answer there exists a target ' +
+ 'ID "' + targetId + '". No target with this ' +
+ 'ID could be found.'
+ );
continue;
}
@@ -112,27 +130,44 @@ define(['logme'], function (logme) {
draggable.containerEl.hide();
draggable.iconEl.detach();
-
- draggable.iconEl.css('width', draggable.iconWidth);
- draggable.iconEl.css('height', draggable.iconHeight);
+ draggable.iconEl.css(
+ 'width',
+ draggable.iconWidth
+ );
+ draggable.iconEl.css(
+ 'height',
+ draggable.iconHeight
+ );
draggable.iconEl.css(
'left',
- target.offset.left + 0.5 * target.w - draggable.iconWidth * 0.5 + offset
+ target.offset.left + 0.5 * target.w -
+ draggable.iconWidth * 0.5 + offset
);
draggable.iconEl.css(
'top',
- target.offset.top + 0.5 * target.h - draggable.iconHeight * 0.5 + offset
+ target.offset.top + 0.5 * target.h -
+ draggable.iconHeight * 0.5 + offset
+ );
+ draggable.iconEl.appendTo(
+ state.baseImageEl.parent()
);
-
- draggable.iconEl.appendTo(state.baseImageEl.parent());
if (draggable.labelEl !== null) {
draggable.labelEl.detach();
-
- draggable.labelEl.css('left', target.offset.left + 0.5 * target.w - draggable.labelWidth * 0.5 + offset);
- draggable.labelEl.css('top', target.offset.top + 0.5 * target.h + draggable.iconHeight * 0.5 + 5 + offset);
-
- draggable.labelEl.appendTo(state.baseImageEl.parent());
+ draggable.labelEl.css(
+ 'left',
+ target.offset.left + 0.5 * target.w -
+ draggable.labelWidth * 0.5 + offset
+ );
+ draggable.labelEl.css(
+ 'top',
+ target.offset.top + 0.5 * target.h +
+ draggable.iconHeight * 0.5 + 5 +
+ offset
+ );
+ draggable.labelEl.appendTo(
+ state.baseImageEl.parent()
+ );
}
draggable.setOnTarget(target);
@@ -145,13 +180,26 @@ define(['logme'], function (logme) {
}
}
} else if (
- ((typeof answer.use_targets === 'boolean') && (answer.use_targets === false)) ||
- ((typeof answer.use_targets === 'string') && (answer.use_targets === 'false'))
+ (
+ (typeof answer.use_targets === 'boolean') &&
+ (answer.use_targets === false)
+ ) ||
+ (
+ (typeof answer.use_targets === 'string') &&
+ (answer.use_targets === 'false')
+ )
) {
for (c1 = 0; c1 < answer.draggables.length; c1++) {
for (draggableId in answer.draggables[c1]) {
- if ((draggable = getDraggableById(draggableId)) === null) {
- logme('ERROR: In answer there exists a draggable ID "' + draggableId + '". No draggable with this ID could be found.');
+ if (
+ (draggable = getDraggableById(draggableId)) ===
+ null
+ ) {
+ logme(
+ 'ERROR: In answer there exists a ' +
+ 'draggable ID "' + draggableId + '". No ' +
+ 'draggable with this ID could be found.'
+ );
continue;
}
@@ -170,31 +218,50 @@ define(['logme'], function (logme) {
draggable.containerEl.hide();
draggable.iconEl.detach();
-
- draggable.iconEl.css('width', draggable.iconWidth);
- draggable.iconEl.css('height', draggable.iconHeight);
+ draggable.iconEl.css(
+ 'width',
+ draggable.iconWidth
+ );
+ draggable.iconEl.css(
+ 'height',
+ draggable.iconHeight
+ );
draggable.iconEl.css(
'left',
- answer.draggables[c1][draggableId][0] - draggable.iconWidth * 0.5 + offset
+ answer.draggables[c1][draggableId][0] -
+ draggable.iconWidth * 0.5 + offset
);
draggable.iconEl.css(
'top',
- answer.draggables[c1][draggableId][1] - draggable.iconHeight * 0.5 + offset
+ answer.draggables[c1][draggableId][1] -
+ draggable.iconHeight * 0.5 + offset
+ );
+ draggable.iconEl.appendTo(
+ state.baseImageEl.parent()
);
-
- draggable.iconEl.appendTo(state.baseImageEl.parent());
if (draggable.labelEl !== null) {
draggable.labelEl.detach();
-
- draggable.labelEl.css('left', answer.draggables[c1][draggableId][0] - draggable.iconWidth * 0.5 - draggable.labelWidth * 0.5 + offset);
- draggable.labelEl.css('top', answer.draggables[c1][draggableId][1] - draggable.iconHeight * 0.5 + draggable.iconHeight + 5 + offset);
-
- draggable.labelEl.appendTo(state.baseImageEl.parent());
+ draggable.labelEl.css(
+ 'left',
+ answer.draggables[c1][draggableId][0] -
+ draggable.labelWidth * 0.5 + offset
+ );
+ draggable.labelEl.css(
+ 'top',
+ answer.draggables[c1][draggableId][1] -
+ draggable.iconHeight * 0.5 +
+ draggable.iconHeight + 5 + offset
+ );
+ draggable.labelEl.appendTo(
+ state.baseImageEl.parent()
+ );
}
- draggable.x = answer.draggables[c1][draggableId][0];
- draggable.y = answer.draggables[c1][draggableId][1];
+ draggable.x =
+ answer.draggables[c1][draggableId][0];
+ draggable.y =
+ answer.draggables[c1][draggableId][1];
state.numDraggablesInSlider -= 1;
state.updateArrowOpacity();
@@ -203,7 +270,10 @@ define(['logme'], function (logme) {
}
}
} else {
- logme('ERROR: The type of answer.targets is not supported. answer.targets = ', answer.targets);
+ logme(
+ 'ERROR: The type of answer.targets is not supported. ' +
+ 'answer.targets = ', answer.targets
+ );
return;
}