ฉันกำลังทำงานกับบอลลูนคำพูดบนผืนผ้าใบ แต่เนื่องจากบอลลูนที่มีตัวชี้อยู่ใน div ดังนั้นบางลิงก์ที่อยู่ภายใต้จึงไม่สามารถคลิกได้อีกต่อไป ฉันไม่สามารถใช้ extjs ได้ในกรณีนี้
ดูตัวอย่างพื้นฐานสำหรับการสอนบอลลูนคำพูดของฉัน ต้องใช้ HTML5
ดังนั้นฉันจึงตัดสินใจที่จะรวบรวมพิกัดลิงก์ทั้งหมดจากภายในลูกโป่งในอาร์เรย์
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]);
});
}
ฉันเรียกฟังก์ชันนี้กับบอลลูน (ใหม่) แต่ละอัน มันจับพิกัดของมุมซ้าย / ด้านบนและด้านขวา / ล่างของ link.class - นอกจากนี้ยังมีชื่อคุณลักษณะสำหรับสิ่งที่ต้องทำถ้ามีคนคลิกที่พิกัดนั้นและฉันชอบตั้งค่า 1 ซึ่งหมายความว่ามันไม่ได้คลิกไอพ่น . และยกเลิกการเลือกอาร์เรย์นี้เป็น clickarray คุณสามารถใช้การกดได้เช่นกัน
ในการทำงานกับอาเรย์นั้น:
$("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 --
}
});
ฟังก์ชั่นนี้พิสูจน์พิกัดของเหตุการณ์การคลิกของร่างกายหรือไม่ว่ามันจะถูกคลิกแล้วและส่งกลับแอตทริบิวต์ชื่อ ฉันคิดว่ามันไม่จำเป็นที่จะต้องเจาะลึก แต่คุณเห็นว่ามันไม่ซับซ้อน หวังว่าจะเป็นภาษาอังกฤษ ...