ইভেন্ট.টারেট, ইভেন্ট. টু এলিমেন্ট এবং ইভেন্ট.এসসিআরইলেমেন্টের মধ্যে পার্থক্য কী?


88

আমার কাছে নিম্নলিখিত কোড রয়েছে:

document.oncontextmenu = function(evt) {
    evt = evt || window.event;
    console.log(evt.target, evt.toElement, evt.srcElement);
};

একটিতে ডান মাউস বোতামে ক্লিক করে এটি <div class="foo"></div>ফেরত দেয়:

div.foo, div.foo, div.foo

একটিতে ডান মাউস বোতামে ক্লিক করে এটি <input>ফেরত দেয়:

ইনপুট, ইনপুট, ইনপুট

সবাই একই ফলাফল আনবে বলে মনে হচ্ছে। তাদের মধ্যে অন্যের চেয়ে আলাদা ব্যবহারের কোনও পরিস্থিতি কি আছে?

উত্তর:


80

ঘটনা লক্ষ্য উপাদান যা ঘটনা প্রেষিত হয়:

বস্তুর একটি ঘটনা ব্যবহার পরিকল্পনা রয়েছে করে DOM ঘটনা প্রবাহ । ইভেন্ট টার্গেটটি Event.target বৈশিষ্ট্যের মান ।

srcElementএটি প্রাপ্ত করার জন্য একটি IE অ-মানক উপায় target

বর্তমান ঘটনা লক্ষ্য উপাদান যা ইভেন্ট শ্রোতা যা বর্তমানে প্রার্থনা রয়েছে হল:

কোনও ইভেন্ট প্রবাহে, বর্তমান ইভেন্টের লক্ষ্য হ'ল ইভেন্ট হ্যান্ডলারের সাথে সম্পর্কিত অবজেক্ট যা বর্তমানে প্রেরণ করা হচ্ছে। এই বস্তুটি হ'ল ইভেন্টটি নিজেই বা এর পূর্বপুরুষদের মধ্যে অন্যতম। বর্তমান ঘটনা টার্গেট হিসাবে পরিবর্তন ঘটনা বিভিন্ন মাধ্যমে বস্তু বস্তু থেকে বংশ বিস্তার পর্যায়ক্রমে ঘটনা প্রবাহ। বর্তমান ইভেন্ট টার্গেটটি Event.currentTargetবৈশিষ্ট্যের মান ।

thisইভেন্ট শ্রোতার অভ্যন্তরে ব্যবহার করা বর্তমান ইভেন্টের লক্ষ্য অর্জনের একটি সাধারণ (এবং মানক) উপায়।

কিছু ধরণের ঘটনাগুলির একটি রয়েছে relatedTarget:

EventTargetইভেন্টের ধরণের উপর নির্ভর করে কোনও ইউআই ইভেন্টের সাথে সম্পর্কিত একটি মাধ্যমিক সনাক্ত করতে ব্যবহৃত হয় ।

fromElementএবং toElementইন্টারনেট অ-মানক প্রাপ্ত করার উপায় আছে relatedTarget


7
আমি ক্রোম সংস্করণ 60-এ "টু এলিমেন্ট" ব্যবহার করছি - আপনি কি নিশ্চিত যে এটি "আই অ-মানক উপায়"?
পান্ডাওয়ুড

4
এমএসডিএন বলছে এটি "অ-মানক" এবং "এটি ওয়েবের মুখোমুখি প্রযোজনা সাইটগুলিতে ব্যবহার করবেন না": বিকাশকারী.মোজিলা.আর.ইন
ইউএস

সর্বশেষতম ক্রোম "টু এলিমেন্ট" সমর্থন করে তবে মজিলা ফায়ারফক্সকে নয়। মজিলায় কয়েকটি ক্ষেত্রে সমর্থন করার জন্য আমাকে 'টার্গেট' সম্পত্তি ব্যবহার করতে হয়েছিল।
বিশাল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.