প্যাক্সের সমাধান সম্পর্কিত: ব্যবহারকারী যদি ইচ্ছাকৃতভাবে বা দুর্ঘটনাক্রমে একাধিক বোতাম ক্লিক করেন তবে এটি কাজ করে না। আমি কীভাবে জানি আমাকে জিজ্ঞাসা করবেন না :-(।
সঠিক কোডটি এর মতো হওয়া উচিত:
var mouseDown = 0;
document.body.onmousedown = function() {
++mouseDown;
}
document.body.onmouseup = function() {
--mouseDown;
}
এই মত পরীক্ষার সাথে:
if(mouseDown){
// crikey! isn't she a beauty?
}
কোন বোতামটি টিপছে তা আপনি যদি জানতে চান তবে মাউসডাউনকে কাউন্টারগুলির একটি অ্যারে তৈরি করতে প্রস্তুত করুন এবং পৃথক বোতামগুলির জন্য পৃথকভাবে গণনা করুন:
// let's pretend that a mouse doesn't have more than 9 buttons
var mouseDown = [0, 0, 0, 0, 0, 0, 0, 0, 0],
mouseDownCount = 0;
document.body.onmousedown = function(evt) {
++mouseDown[evt.button];
++mouseDownCount;
}
document.body.onmouseup = function(evt) {
--mouseDown[evt.button];
--mouseDownCount;
}
এখন আপনি কী বোতামগুলি ঠিক টিপেছিলেন তা পরীক্ষা করতে পারেন:
if(mouseDownCount){
// alright, let's lift the little bugger up!
for(var i = 0; i < mouseDown.length; ++i){
if(mouseDown[i]){
// we found it right there!
}
}
}
এখন আপনাকে সাবধান করে দেওয়া হবে যে উপরের কোডটি কেবলমাত্র মান-অনুপযুক্ত ব্রাউজারগুলির জন্য কাজ করবে যা আপনাকে 0 থেকে শুরু করে উপরে বাটন নম্বর দেয়। আইই বর্তমানে চাপযুক্ত বোতামগুলির একটি বিট মাস্ক ব্যবহার করে:
- "কিছুই চাপছে না" এর জন্য 0
- বাম দিকে 1
- ডান জন্য 2
- মাঝারি জন্য 4
- এবং উপরের যে কোনও সংমিশ্রণ, যেমন বাম + মাঝের জন্য 5
সুতরাং সেই অনুযায়ী আপনার কোড সামঞ্জস্য করুন! আমি এটি একটি অনুশীলন হিসাবে ছেড়ে।
এবং মনে রাখবেন: আইই… "ইভেন্ট" নামে একটি বিশ্বব্যাপী ইভেন্ট অবজেক্ট ব্যবহার করে।
ঘটনাক্রমে IE আপনার ক্ষেত্রে দরকারী বৈশিষ্ট্য রয়েছে: যখন অন্য ব্রাউজারগুলি কেবল মাউস বোতাম ইভেন্টের জন্য "বোতাম" প্রেরণ করে (অনক্লিক, অনমাউসডাউন, এবং অনমাউসআপ), আইই এটি ওমেনমোভের সাথে প্রেরণ করে। সুতরাং আপনি যখন বোতামের অবস্থাটি জানতে হবে তখনই আপনি ওমেনমোভের জন্য শোনার শুরু করতে পারেন, এবং যখনই আপনি এটি পেয়েছেন তখনই চেক করুন - এখন আপনি কী মাউস বোতাম টিপেছিলেন তা জানেন:
// for IE only!
document.body.onmousemove = function(){
if(event.button){
// aha! we caught a feisty little sheila!
}
};
অবশ্যই সে কিছুই না পেয়ে যদি সে মৃত খেলে এবং নাড়তে না পারে।
প্রাসঙ্গিক লিঙ্ক:
আপডেট # 1 : আমি জানি না কেন আমি ডকুমেন্ট.বডি স্টাইলে কোড বহন করেছি। সরাসরি ডকুমেন্টের সাথে ইভেন্ট হ্যান্ডলার সংযুক্ত করা ভাল।