গুগল ম্যাপস এপিআই ভি 3: কীভাবে ইভেন্ট শ্রোতার অপসারণ করবেন?


91

গুগল ম্যাপস এপিআই ভি 3- তে আমি কীভাবে 'সীমানা_দলিত' ইভেন্ট শ্রোতাকে সরিয়ে দেব ?

google.maps.event.removeListener(_???_);    

4
আমি মনে করি আপনি যা খুঁজছিলেন তা আমি পেয়েছি। এটি এপিআই ডক্সে তৃতীয় ইভেন্ট ফাংশন ছিল।
মাইকু মোরি

4
আমি তোমার কষ্টটা অনুভব করতে পারছি. আপনি এই ডকুমেন্টেশন কোড. google.com/apis/maps/docamentation/javascript/events.htmlথাকবেন তবে তা নয়। গ্রারার
ড্রউ

উত্তর:


152

সাধারণত আপনি গুগল ম্যাপস এপিআই ডকুমেন্টেশনে এই জাতীয় প্রশ্নের উত্তর পেতে পারেন।

অ্যান্ড্রু যেমন বলেছিলেন, অ্যাডলিস্টনার একটি হ্যান্ডেল ফেরত দেয় যা আপনি শ্রোতার অপসারণ করতে পরে ব্যবহার করতে পারেন। এটি কারণ একটি একক ইভেন্টে অনেক শ্রোতা থাকতে পারে এবং সেগুলি সরাতে আপনাকে অবশ্যই প্রতিটি সংযুক্ত শ্রোতার একটি উল্লেখ সংরক্ষণ করতে হবে।

এখানে একটি ফাংশন রয়েছে যা একই সাথে সমস্ত শ্রোতাকে সরিয়ে দেয়:

clearListeners(instance:Object, eventName:string);
//In your case:
google.maps.event.clearListeners(map, 'bounds_changed');

এখানে গুগল ম্যাপস এপিআই রেফারেন্স যেখানে আপনি এটি সম্পর্কে পড়তে পারেন।


4
সুতরাং এটি কি কেবলমাত্র সীমানা_দিকিত ইভেন্টটি সরিয়ে দেবে?
এমপি_

বনাম অ্যান্ড্রু পদ্ধতিতে এই পদ্ধতিটি ব্যবহারের পক্ষে / কন কী?
এমপি_

এটি সমস্ত শ্রোতাকে সীমা_-পরিবর্তিত ইভেন্ট থেকে সরিয়ে দেয়। যখন অ্যান্ড্রুয়ের পদ্ধতিটি একটি সরিয়ে দেয়। আপনি যদি হ্যান্ডেলটি কোথাও সঞ্চয় করতে না চান এবং প্রদত্ত ইভেন্টের জন্য আপনাকে কেবলমাত্র 1 শ্রোতার বিষয়েই চিন্তা করতে হবে তবে এটি যাওয়ার উপায়।
মাইকু মরি

যেমনটি আমি বলেছি ইভেন্টগুলিতে অনেক শ্রোতা থাকতে পারে তবে মনে হয় আপনি নিজের কোডটিতে কেবল 1 ব্যবহার করছেন। যদি আপনি এই ধারণাটি বুঝতে পারেন তবে আপনি উভয় ফাংশনের জন্য আলাদা ব্যবহার দেখতে পাবেন। এছাড়াও আমি সরবরাহিত লিঙ্কটি দেখুন, এটি উভয় ফাংশনের জন্য সুন্দর ব্যাখ্যা রয়েছে।
মাইকু মোরি

4
এটা বের করে আনা। google.maps.event.clearListeners(map, 'idle')কাজ করে। কিন্তু map.clearListeners('idle')না। এই সিনট্যাক্সটি এপিআই ( .addListenerইত্যাদির) সমস্ত কিছুর জন্য কাজ করে । অস্বাভাবিক.
অ্যান্ডি মারসার

93

অ্যাডলিস্টনার একটি হ্যান্ডেল ফেরত দেয় যা আপনি পরে রিমুজনলিস্টারে পাস করতে পারবেন:

var listenerHandle = google.maps.event.addListener(map, 'bounds_changed', function() {

google.maps.event.removeListener(listenerHandle);

তাহলে শ্রোতার জন্য আর কোনও স্থির পরিবর্তনশীল নেই?
এমপি_

শ্রোতাদের একে একে অপসারণ করা দরকার। আপনি তাদের সমস্ত আলা jQuery আনবাইন্ড করতে পারবেন না। আমি জানি কারণ আমিও একই চিন্তা করেছি এবং এই বিষয়টিতেও বিভ্রান্ত হয়েছি। আমি অবশেষে এটি কার্যকর করেছিলাম এবং উপরের সিউডো কোডটি কীভাবে এটি করেছি তা বর্ণনা করে।
অ্যান্ড্রু

4
ধ্রাত! ইতি হয় একটি উন্নততর উত্তর।
অ্যান্ড্রু

4
আমার জন্য আরও উত্তম উত্তর, এটি কেবলমাত্র আমাদের তৈরি ইভেন্ট ইভেন্ট শ্রোতার অপসারণ এবং এটি অন্যান্য স্ক্রিপ্টগুলিতে প্রভাব ফেলবে না
ম্যাথিউ ন্যাপোলি

4
দুটি কারণে ভাল উত্তর। শুধুমাত্র, প্রকৃত শ্রোতা সরান। এছাড়াও, ছদ্মবেশযুক্ত নেই "আপনি এপিআই ডক্সের মন্তব্যে এটি সন্ধান করতে পারেন
কেইথ্যাকবার্থ

17

এটি বর্তমান প্রকাশে কাজ করে বলে মনে হচ্ছে।

var listenerHandle = google.maps.event.addListener(map, 'bounds_changed', function() {
    // Handler code.
});
listenerHandle.remove();

এবং এই পদ্ধতির সম্পর্কে দুর্দান্ত জিনিসটি হ'ল listenerHandler.remove()ডেটা-লেয়ার শ্রোতাদের জন্যও কাজ করে - যেমন google.maps.data.addListener- যেহেতু কোনও google.maps.data.removeListenerপদ্ধতিই সংজ্ঞায়িত হয়নি।
ক্রিস্টোফার কিং


0

আপনি যদি কোনওভাবে শ্রোতাদের অবজেক্টটি ধরে না রাখতে পারেন তবে আপনি শ্রোতাদের (গুলি) সরাসরি হিসাবে মুছে ফেলতে পারেন google.maps.event.clearListeners(objectListened, 'event');

প্রাক্তন: google.maps.event.clearListeners(map, 'bounds_changed');

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