tl; dr : না, আপনি কোনও দেশীয় সমর্থিত উপায়ে এটি করতে পারবেন না।
আমি এটি অর্জন করার একমাত্র উপায় হ'ল এটি একটি কাস্টম স্টোরেজ অবজেক্ট তৈরি করা যেখানে আপনি শ্রোতাদের যুক্ত করা একটি রেকর্ড রাখবেন। নিম্নলিখিত লাইন বরাবর কিছু:
var CustomEventStorage = [];
পদক্ষেপ 1: প্রথমে, আপনার একটি ফাংশন প্রয়োজন যা স্টোরেজ অবজেক্টকে অতিক্রম করতে এবং উপাদানটির (বা মিথ্যা) প্রদত্ত কোনও উপাদানটির রেকর্ড ফিরিয়ে দিতে পারে।
function findRecordByElement (element) {
for (var index = 0, length = CustomEventStorage.length; index < length; index++) {
var record = CustomEventStorage[index];
if (element == record.element) {
return record;
}
}
return false;
}
পদক্ষেপ 2: তারপরে, আপনার একটি ফাংশন প্রয়োজন যা ইভেন্ট শ্রোতা যুক্ত করতে পারে তবে শ্রোতাকে স্টোরেজ অবজেক্টে সন্নিবেশ করতে পারে।
function insertListener (element, event, listener, options) {
var record = findRecordByElement(element);
if (record) {
record.listeners[event] = record.listeners[event] || [];
}
else {
record = {
element: element,
listeners: {}
};
record.listeners[event] = [];
CustomEventStorage.push(record);
}
record.listeners[event].push(listener);
element.addEventListener(event, listener, options);
}
পদক্ষেপ 3: আপনার প্রশ্নের প্রকৃত প্রয়োজনীয়তার বিষয়ে, কোনও নির্দিষ্ট ইভেন্টের জন্য কোনও ইভেন্ট ইভেন্ট শ্রোতা যুক্ত হয়েছে কিনা তা পরীক্ষা করার জন্য আপনার নিম্নলিখিত ফাংশনটির প্রয়োজন হবে।
function listenerExists (element, event, listener) {
var record = findRecordByElement(element);
if (record && event in record.listeners) {
return !!~record.listeners[event].indexOf(listener);
}
return false;
}
পদক্ষেপ 4: অবশেষে, আপনার একটি ফাংশন প্রয়োজন যা স্টোরেজ অবজেক্ট থেকে শ্রোতাকে মুছতে পারে।
function removeListener (element, event, listener, options) {
var record = findRecordByElement(element);
if (record && event in record.listeners) {
var index = record.listeners[event].indexOf(listener);
if (~index) {
record.listeners[event].splice(index, 1);
}
if (!record.listeners[event].length) {
delete record.listeners[event];
}
}
element.removeEventListener(event, listener, options);
}
স্নিপেট:
window.onload = function () {
var
element = document.getElementById("test"),
listener = function (e) {
console.log(e.type + "triggered!");
};
insertListener(element, "mouseover", listener);
console.log(listenerExists(element, "mouseover", listener));
removeListener(element, "mouseover", listener);
console.log(listenerExists(element, "mouseover", listener));
};
<script src = "https://cdn.rawgit.com/angelpolitis/custom-event-storage/master/main.js"></script>
<div id = "test" style = "background:#000; height:50px; width: 50px"></div>
যদিও ওপি এই প্রশ্ন পোস্ট করার পরে 5 বছরেরও বেশি সময় পেরিয়ে গেছে, আমি বিশ্বাস করি ভবিষ্যতে যে লোকেরা এটিকে হোঁচট খায় তারা এই উত্তরটি থেকে উপকৃত হবেন, তাই এতে পরামর্শ বা উন্নতি করতে নির্দ্বিধায় অনুভব করুন। 😊