В настоящее время я работаю с речевыми шариками. Но поскольку всплывающая подсказка с указателем обернута в элемент 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 - дополнительно атрибут name для того, что делать, если кто-то нажимает на эти координаты, и я любил устанавливать 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 --
}
});
Эта функция проверяет координаты события щелчка тела или, если оно уже было щелкнуто, и возвращает атрибут имени. Я думаю, что нет необходимости углубляться, но вы видите, что это не так уж сложно.
Надеюсь, что это будет ...