আপনার দস্তাবেজ স্তরের ক্লিক ইভেন্টটি পরিচালনা করতে হবে। ইভেন্ট অবজেক্টে আপনার একটি targetসম্পত্তি রয়েছে, যা অভ্যন্তরীণ সর্বাধিক DOM উপাদানকে ক্লিক করা হয়েছিল। এটির সাহায্যে আপনি নিজে যাচাই করে নিন এবং নথির উপাদান পর্যন্ত তার পিতামাতাকে অনুসরণ করবেন, যদি তাদের মধ্যে একটি যদি আপনার দেখানো উপাদান।
জেএসফিডালে উদাহরণটি দেখুন
document.addEventListener("click", function (e) {
var level = 0;
for (var element = e.target; element; element = element.parentNode) {
if (element.id === 'x') {
document.getElementById("out").innerHTML = (level ? "inner " : "") + "x clicked";
return;
}
level++;
}
document.getElementById("out").innerHTML = "not x clicked";
});
সর্বদা হিসাবে, এটি অ্যাডএভেন্টলিস্টনার / সংযুক্তিভেন্টের কারণে ক্রস-খারাপ-ব্রাউজারটি উপযুক্ত নয়, তবে এটি এটির মতো কাজ করে।
কোনও শিশু ক্লিক করা হয়, যখন ইভেন্ট.আরজেট নয়, তবে এর পিতামাতার মধ্যে একটি হ'ল পর্যবেক্ষণকারী উপাদান (আমি কেবল এটির জন্য স্তর গণনা করছি)। আপনার কাছে একটি বুলিয়ান ভারও থাকতে পারে, যদি উপাদানটি পাওয়া যায় বা না পাওয়া যায় তবে ক্লজটির জন্য হ্যান্ডলারটি ভিতরে থেকে ফিরে না আসা return আমার উদাহরণটি সীমাবদ্ধ করে দিচ্ছে যে হ্যান্ডলারটি কেবল শেষ হয়, যখন কিছুই মেলে না।
ক্রস ব্রাউজারের সামঞ্জস্যতা যুক্ত করা হচ্ছে, আমি সাধারণত এটি এরকম করে চলেছি:
var addEvent = function (element, eventName, fn, useCapture) {
if (element.addEventListener) {
element.addEventListener(eventName, fn, useCapture);
}
else if (element.attachEvent) {
element.attachEvent(eventName, function (e) {
fn.apply(element, arguments);
}, useCapture);
}
};
এটি ইভেন্ট শোনার / হ্যান্ডলার সংযুক্তকরণের জন্য this, আইই তে অন্তর্ভুক্ত পুনর্লিখন , উপাদান হওয়ার জন্য, যেমন jQuery এর ইভেন্ট হ্যান্ডলারদের জন্য এটি ক্রস ব্রাউজারের সামঞ্জস্যপূর্ণ কোড । JQuery এর কিছু বিট মনে রাখার জন্য প্রচুর যুক্তি রয়েছে;)