Je travaille actuellement avec de la toile de la parole de ballons. Mais parce que le ballon avec le pointeur est enveloppé dans un div, certains liens sous il ne sont pas capable de cliquer plus. Je ne peux pas utiliser extjs dans ce cas.
Voir un exemple de base pour ma bulle tutoriel nécessite HTML5
J'ai donc décidé de collecter tous les lien les coordonnées de l'intérieur de l'ballons dans un tableau.
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]);
});
}
J'appelle cette fonction sur chaque (nouveau) ballon. Il saisit les coordonnées du coin supérieur gauche et à droite/bas angles d'un link.class - en plus, le nom de l'attribut pour quoi faire si quelqu'un clique dans coordonne et j'ai adoré pour définir un 1, ce qui signifie qu'il n'a pas cliqué sur le jet. Et unshift ce tableau à la clickarray. Vous pouvez utiliser pousser trop.
Pour travailler avec ce tableau:
$("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 --
}
});
Cette fonction preuves les coordonnées d'un organisme cliquez sur l'événement ou si elle était déjà cliqué et retourne le nom de l'attribut. Je pense qu'il n'est pas nécessaire d'aller plus loin, mais tu vois, ce n'est pas compliquer.
L'espoir était anglais...