Я создаю на основе canvas
. Выберите свою систему бронирования на месте и затруднился с тем, как определить, было ли нажато одно из кругов. Сиденья динамически нарисованы на основе вытягивания из массива, заполненного данными XML, возвращенными с CRM system
. Я попытался использовать ключевое слово «this» с мыслью, что это поможет. Я думал, что могу использовать координаты, чтобы определить, какое место было выбрано, затем верните идентификатор этого места, чтобы запросить резервирование через CRM.Выбор эллипсов на основе координат мыши и получение идентификатора места от div
Должен ли я создать многомерный массив и заполнить его координатами и идентификатором места?
document.addEventListener('DOMContentLoaded',domloaded,false);
function domloaded(){
var canvas = document.getElementById("mycanvas");
var ctx = canvas.getContext("2d");
var allseats = document.getElementsByClassName("seat");
var arr = Array.prototype.slice.call(allseats);
for (var j=0; j<arr.length; j++)
{
//Get seat status
var status = arr[j].getAttribute("data-seat-status");
//Get row position
var top = arr[j].getAttribute("data-top");
//Get column position
var left = arr[j].getAttribute("data-left");
//Get seat id
var id = arr[j].getAttribute("id");
var sAngle = 0;
var eAngle = 2*Math.PI;
//Create more space between seats
left=(left*10);
top=(top*10);
var seat = function(){
function seat(x, y) {
this.color = "white";
this.x = left;
this.y = top;
this.radius = 4;
}
seat.prototype.draw = function (ctx) {
ctx.fillStyle = "red";
ctx.beginPath();
ctx.arc(this.x, this.y, this.radius, 0, 2 * Math.PI, false);
ctx.fill();
};
return seat;
}();
var drawSeats=new seat(top,left);
drawSeats.draw(ctx);
}
canvas.onmousedown=function findseats(arr){
var xleft=arr.clientX;
var ytop=arr.clientY;
alert("X coords: " + xleft + ", Y coords: " + ytop);
for (s=0; s<arr.length; s++){
if((xleft||((arr[s].getAttribute("data-left")*10)&&(ytop||arr[s].getAttribute("data-top")*10)))){
alert(arr[s].getAttribute("data-id"));
}
}
}}
http://jsfiddle.net/caspianturner/5sycT
Предоставьте свой http://jsfiddle.net/ –
http://jsfiddle.net/64yJs/ Спасибо - я не использовал jsfiddl e, прежде чем пытаться настроить его так, чтобы он работал - в настоящее время он не вытягивает места в jsfiddle. – caspianturner
Вставьте свой HTML-код в 'Jsfiddle', у меня есть ваш код, но вы хотите увидеть свою часть HTML и CSS. –