JQuery এর মাউসআউট () এবং মাউসলেভ () এর মধ্যে পার্থক্য কী?
mouseover
, এবং সমতুল্য mouseleave
হয় mouseenter
।
JQuery এর মাউসআউট () এবং মাউসলেভ () এর মধ্যে পার্থক্য কী?
mouseover
, এবং সমতুল্য mouseleave
হয় mouseenter
।
উত্তর:
মাউসলেভ ইভেন্টটি যেভাবে ঘটনা বুদবুদ পরিচালনা করে তা মাউসআউট থেকে পৃথক। যদি এই উদাহরণে মাউসআউট ব্যবহার করা হয়, তবে মাউস পয়েন্টারটি যখন ভিতরের উপাদান থেকে সরে যায় তখন হ্যান্ডলারটি ট্রিগার হয়ে যায়। এটি সাধারণত অবাঞ্ছিত আচরণ। অন্যদিকে মাউসলেভ ইভেন্টটি কেবল তখনই তার হ্যান্ডলারটিকে ট্রিগার করে যখন মাউস উপাদানটির সাথে আবদ্ধ হয় যা বংশধর নয় leaves সুতরাং এই উদাহরণে, হ্যান্ডলারটি ট্রিগার করা হয় যখন মাউস বাইরের উপাদান ছেড়ে দেয় তবে অভ্যন্তরীণ উপাদানটি নয়।
এমন সময়গুলি হতে পারে যখন mouseout
তার চেয়ে ভাল পছন্দ choicemouseleave
।
উদাহরণস্বরূপ, ধরা যাক আপনি এমন একটি সরঞ্জামদণ্ড তৈরি করেছেন যা আপনি কোনও উপাদানের পাশে প্রদর্শিত করতে চান mouseenter
। আপনি setTimeout
তাত্ক্ষণিকভাবে পপ আপ থেকে সরঞ্জামটিপ প্রতিরোধ করতে ব্যবহার করুন । আপনি মাউসটি ছেড়ে গেলে টুলটিপটি প্রদর্শিত না হলে এটি mouseleave
ব্যবহারের সময়সীমা সাফ করে দিন clearTimeout
। এটি সময়ের 99% কাজ করবে।
তবে এখন যাক যে উপাদানটির সাথে আপনার একটি টুলটিপ সংযুক্ত রয়েছে সেটিকে একটি click
ইভেন্টের একটি বোতাম রয়েছে এবং ধরে নেওয়া যাক এই বোতামটি ব্যবহারকারীকে একটি confirm
বা alert
বাক্সের সাহায্যে প্রম্পট করে । ব্যবহারকারী বোতাম এবং alert
আগুন ক্লিক করে । ব্যবহারকারী এটি দ্রুত চাপ দিয়েছিল যে আপনার সরঞ্জামদণ্ডে পপ আপ করার সুযোগ নেই (এতদূর ভাল)।
ব্যবহারকারী alert
বক্স ওকে বাটন টিপে, এবং মাউস উপাদান ছেড়ে দেয়। তবে যেহেতু ব্রাউজার পৃষ্ঠাটি এখন লক অবস্থায় রয়েছে, ঠিক আছে বোতামটি চাপ না দেওয়া পর্যন্ত কোনও জাভাস্ক্রিপ্ট চালু হবে না, যার অর্থ আপনার mouseleave
ইভেন্টটি আগুন নেবে না । ব্যবহারকারী ঠিক আছে চাপ দেওয়ার পরে টুলটিপ পপআপ হয়ে যাবে (যা আপনি চেয়েছিলেন তা নয়)।
mouseout
এই ক্ষেত্রে ব্যবহার করা উপযুক্ত সমাধান হবে কারণ এটি আগুন লাগবে।
mouseout
সেই ক্ষেত্রে গুলি চালানো হবে? ব্রাউজারটি এখনও লক অবস্থায় থাকবে না mouseout
?
jQuery এপিআই ডক:
mouseout
ইভেন্টের বুদবুদয়ের কারণে এই ইভেন্টের ধরণটি অনেকের মাথা ব্যাথার কারণ হতে পারে। উদাহরণস্বরূপ, যখন মাউস পয়েন্টারটি এই উদাহরণের অভ্যন্তরীণ উপাদান থেকে সরে যায়, তখন একটি মাউসআউট ইভেন্ট প্রেরণ করা হবে, তারপরে আউটার পর্যন্ত ট্রিক করুন। এটি ইনপপোর্টুন সময়ে বাউন্ডে মাউসআউট হ্যান্ডলারটিকে ট্রিগার করতে পারে। দরকারী বিকল্পের জন্য .mouseleave () এর জন্য আলোচনা দেখুন।
একইভাবে mouseleave
একটি কাস্টম ইভেন্ট, যা উপরের কারণে ডিজাইন করা হয়েছিল।
ইভেন্ট মাউসআউটটি ট্রিগার করবে যখন মাউস নির্বাচিত উপাদানটি ছেড়ে যায় এবং যখন মাউস তার শিশু উপাদানও ছেড়ে যায়।
পয়েন্টার কেবলমাত্র নির্বাচিত উপাদানটি ছেড়ে দিলে ইভেন্ট মাউসলেভ উপাদানটি ট্রিগার করবে।
তথ্যসূত্র: ডাব্লু 3 স্কুল