Light12306/Web12306/js/vc/touchvc1.js

76 lines
2.1 KiB
JavaScript

define(function (require, exports, module) {
var init = function () {
$(document)
.on("verifyCodeLoaded", "img.vc-touchclick", initEle)
.on("verifyCodeOnLoad", "img.vc-touchclick", initEle)
.on("click", "img.vc-touchclick", touchClick)
.on("click", "span.vc-touchclick-marker", removeClickMarker);
}
var initEle = function () {
var img = $(this);
img.removeData("poslist");
img.data("poslist", []);
img.parent().find(".vc-touchclick-marker").remove();
};
var removeClickMarker = function() {
var marker = $(this);
var parent = marker.parent();
var img = parent.find("img");
var poslist = img.data("poslist");
for (var i = 0; i < poslist.length; i++) {
if (poslist[i] === marker.data("pos"))
poslist.splice(i, 1);
}
marker.remove();
parent.find(":hidden").val(_.map(poslist, function (e) { return e.x + "," + e.y; }).join(","));
};
var touchClick = function (e) {
var img = $(this);
var parent = img.parent();
var pos = { x: e.offsetX, y: e.offsetY };
var realPos = { x: pos.x, y: pos.y - 30 };
var poslist = img.data("poslist");
var imgPos = img.position();
if (realPos.x <= 0 || realPos.y <= 0 || poslist.length >= 20)
return;
//var strlist = img.data("strlist");
//查找是否已经点击过了
//var currentMarks = $.makeArray(parent.find(".vc-touchclick-marker"));
//var current = _.find(currentMarks, function (e) {
// var p = $(e).data("pos");
// return p && p.x >= pos.x - 16 && p.x <= pos.x + 16 && p.y >= pos.y - 16 && p.y <= pos.y + 16;
//});
//if (current) {
// for (var i = 0; i < poslist.length; i++) {
// if (poslist[i] === current.data("pos"))
// poslist.splice(i, 1);
// }
// current.remove();
// return;
//}
poslist.push(realPos);
//add marker
var marker = $("<span class='vc-touchclick-marker' style='top:" + (pos.y + imgPos.top - 16) + "px; left:" + (pos.x + imgPos.left - 16) + "px;'></span>");
marker.data("pos", realPos);
parent.append(marker);
//set input
parent.find(":hidden").val(_.map(poslist, function (x) { return x.x + "," + x.y; }).join(","));
};
init();
});