Saat ini saya bekerja dengan balon pidato kanvas. Tetapi karena balon dengan pointer dibungkus dengan div, beberapa tautan di bawahnya tidak lagi bisa klik. Saya tidak bisa menggunakan extjs dalam hal ini.
Lihat contoh dasar untuk tutorial balon ucapan saya membutuhkan HTML5
Jadi saya memutuskan untuk mengumpulkan semua koordinat tautan dari dalam balon dalam sebuah array.
var clickarray=[];
function getcoo(thatdiv){
thatdiv.find(".link").each(function(){
var offset=$(this).offset();
clickarray.unshift([(offset.left),
(offset.top),
(offset.left+$(this).width()),
(offset.top+$(this).height()),
($(this).attr('name')),
1]);
});
}
Saya menyebut fungsi ini pada setiap balon (baru). Itu mengambil koordinat sudut kiri / atas dan kanan / bawah dari link.class - juga atribut nama untuk apa yang harus dilakukan jika seseorang mengklik koordinat itu dan saya suka menetapkan 1 yang artinya tidak diklik jet . Dan lepaskan array ini ke clickarray. Anda juga bisa menggunakan push.
Untuk bekerja dengan array itu:
$("body").click(function(event){
event.preventDefault();//if it is a a-tag
var x=event.pageX;
var y=event.pageY;
var job="";
for(var i in clickarray){
if(x>=clickarray[i][0] && x<=clickarray[i][2] && y>=clickarray[i][1] && y<=clickarray[i][3] && clickarray[i][5]==1){
job=clickarray[i][4];
clickarray[i][5]=0;//set to allready clicked
break;
}
}
if(job.length>0){
// --do some thing with the job --
}
});
Fungsi ini membuktikan koordinat acara klik tubuh atau apakah sudah diklik dan mengembalikan atribut nama. Saya pikir tidak perlu masuk lebih dalam, tetapi Anda lihat itu tidak terlalu rumit. Harapan dalam bahasa Inggris ...