मैं वर्तमान में कैनवास भाषण गुब्बारे के साथ काम करता हूं। लेकिन क्योंकि सूचक के साथ गुब्बारा एक डिव में लिपटा हुआ है, इसके अंतर्गत कुछ लिंक अब सक्षम नहीं हैं। मैं इस मामले में 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]);
});
}
मैं इस फ़ंक्शन को प्रत्येक (नए) गुब्बारे पर कहता हूं। यह एक लिंक के बाएं / शीर्ष और दाएं / नीचे कोनों के निर्देशांक को पकड़ता है। इसके अलावा - यदि कोई व्यक्ति उस निर्देशांक में क्लिक करता है तो मुझे क्या करना है और इसके लिए मुझे 1 सेट करना पसंद है, जिसका अर्थ है कि यह क्लिक किया गया जेट नहीं था । और इस एरे को क्लिकरेअर में अनफिट कर दें। आप पुश का भी उपयोग कर सकते हैं।
उस सरणी के साथ काम करने के लिए:
$("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 --
}
});
यह फ़ंक्शन किसी बॉडी क्लिक ईवेंट के निर्देशांक को प्रमाणित करता है या यह पहले से ही क्लिक किया गया था और नाम विशेषता लौटाता है। मुझे लगता है कि गहराई तक जाना जरूरी नहीं है, लेकिन आप देखिए कि यह जटिल नहीं है। आशा है कि ऊर्जावान था ...