From 06b6535fb168de103ac8fa4e9542270905911b06 Mon Sep 17 00:00:00 2001 From: Valera Rozuvan Date: Fri, 13 Dec 2013 13:04:18 +0200 Subject: [PATCH] Using jQuery for all DOM manipulation. --- .../xmodule/xmodule/js/src/capa/imageinput.js | 27 +++++++++---------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/common/lib/xmodule/xmodule/js/src/capa/imageinput.js b/common/lib/xmodule/xmodule/js/src/capa/imageinput.js index 059ff65dd3..d5df6e2ba6 100644 --- a/common/lib/xmodule/xmodule/js/src/capa/imageinput.js +++ b/common/lib/xmodule/xmodule/js/src/capa/imageinput.js @@ -27,7 +27,10 @@ window.ImageInput = (function ($, undefined) { var _this = this; this.elementId = elementId; - this.el = $('#imageinput_' + elementId); + + this.el = $('#imageinput_' + this.elementId); + this.crossEl = $('#cross_' + this.elementId); + this.inputEl = $('#input_' + this.elementId); this.el.on('click', function (event) { _this.clickHandler(event); @@ -35,14 +38,10 @@ window.ImageInput = (function ($, undefined) { } function clickHandler(event) { - var iiDiv = document.getElementById('imageinput_' + this.elementId), - - posX = event.offsetX ? - event.offsetX : event.pageX - iiDiv.offsetLeft, + var posX = event.offsetX ? + event.offsetX : event.pageX - this.el[0].offsetLeft, posY = event.offsetY ? - event.offsetY : event.pageY - iiDiv.offsetTop, - - cross = document.getElementById('cross_' + this.elementId), + event.offsetY : event.pageY - this.el[0].offsetTop, // To reduce differences between values returned by different kinds // of browsers, we round `posX` and `posY`. @@ -51,12 +50,12 @@ window.ImageInput = (function ($, undefined) { // Chrome, FF: `posX` and `posY` - integers. result = '[' + Math.round(posX) + ',' + Math.round(posY) + ']'; - console.log('[image_input_click]: event = ', event); + this.crossEl.css({ + left: posX - 15, + top: posY - 15, + visibility: 'visible' + }); - cross.style.left = (posX - 15) + 'px'; - cross.style.top = (posY - 15) + 'px'; - cross.style.visibility = 'visible'; - - document.getElementById('input_' + this.elementId).value = result; + this.inputEl.val(result); } }).call(this, window.jQuery);