التابع ‎‎.mousedown()‎‎ في jQuery

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث

‎.mousedown( handler )‎

القيم المعادة

يعيد كائنًا من النوع jQuery.

الوصف

يربط هذا التابع معالج حدث معين مع الحدث mousedown (الضغط على زر الفأرة) في JavaScript، أو يستدعي ذلك الحدث لتطبيقه على عنصر.

‎.mousedown( handler )‎

أُضيف مع الإصدار: 1.0.

handler

دالة من الشكل Function( Event eventObject )‎، وتُمثِّل الدالة التي ستُنفَّذ في كل مرة يُستدعى فيها الحدث.

‎.mousedown( [eventData ], handler )‎

أُضيف مع الإصدار: 1.4.3.

eventData

أي شيء (وهو نوع افتراضي مُستخدَم في jQuery للإشارة إلى إمكانيَّة استخدام أي نوع)، ويُمثِّل كائنًا يحتوي على البيانات التي ستُمرَّر إلى مُعالِج الأحداث.

handler

دالة من الشكل Function( Event eventObject )‎، وتُمثِّل الدالة التي ستُنفَّذ في كل مرة يُستدعى فيها الحدث.

‎.mousedown()‎

أُضيف مع الإصدار: 1.0، ولا يقبل هذا الشكل من التابع أي وسائط.

هذا التابع هو اختصار للتابع ‎.on( "mousedown", handler )‎ في شكله الأول والثاني، واختصار للتابع ‎.trigger( "mousedown" )‎ في شكله الثالث.

يُرسل الحدث mousedown إلى عنصر عند الضغط على زر الفأرة ومؤشرها فوق هذا العنصر. يمكن أن تستقبل جميع عناصر HTML هذا الحدث.

انظر مثلًا إلى شيفرة HTML التالية:

<div id="target">
  Click here
</div>
<div id="other">
  Trigger the handler
</div>

يمكن أن يُربط معالج الحدث مع أي عنصر <div>:

$( "#target" ).mousedown(function() {
 alert( "Handler for .mousedown() called." );
});

عند الضغط على هذا العنصر، فسيظهر التنبيه التالي:

Handler for .mousedown() called.

يمكن أيضًا استدعاء الحدث عند الضغط على عنصر آخر غير العنصر المطلوب:

$( "#other" ).click(function() {
 $( "#target" ).mousedown();
});

بعد تنفيذ هذه الشيفرة، سيظهر التنبيه السابق أيضًا بالضغط على "Trigger the handler".

سيُرسل الحدث mousedown عند الضغط على أي زر في الفأرة. إن أردت تخصيص زر معين، فاستعمل الخاصِّيَّة which. لا تدعم جميع المتصفحات هذه الخاصِّيَّة (المتصفح Internet Explorer مثلًا يستعمل button عوضًا عن ذلك)، ولكن jQuery سوَّت هذه المشكلة بتوفير الخاصِّيَّة which لذا أصبح من الممكن استعمالها بشكل آمن في أي متصفح. قيمة الخاصِّيَّة which ستكون 1 لزر الفأرة الأيمن، والقيمة 2 للزر الأوسط، والقيمة 3 للزر الأيسر.

هذا الحدث مفيد خصوصًا للتأكد من استعمال الزر الأساسي (الأيسر) لبدء عمليَّة السحب (drag). إن أُهملت هذه العمليَّة، فيمكن أن تحدث نتائج غريبة عندما يحاول المستخدم استعمال قائمة المحتوى. رغم أنَّه يمكن اكتشاف الزر الأوسط والأيمن مع تلك الخاصِّيَّات إلا أنَّ ذلك غير موثوق ولا يُعوَّل عليه. في المتصفح Opera والمتصفح Safari مثلًا، لا تُكتشف ضغطات الزر الأيمن افتراضيًّا.

إن ضغط المستخدم زر الفأرة على عنصر وسحب المؤشر بعيدًا عنه ثمَّ تحرير الزر المضغوط، فهذا لايزال يوصف بالحدث mousedown، إذ لا تُعامَل هذه السلسلة من الأحداث على أنَّها ضغطة زر في أغلب واجهات المستخدم؛ لذا يستحسن غالبًا استعمال الحدث click ما لم يكن استعمال الحدث mousedown هو الأفضل في حالات معيَّنة.

ملاحظات إضافية

لمَّا كان التابع ‎.mousedown()‎ اختزالٌ للتابع ‎.on( "mousedown", handler )‎، فمن الممكن استعمال ‎.off( "mousedown" )‎ لإزالة الحدث mousedown أي عملية معاكسة لما سبق.

أمثلة

إظهار نصوص معيَّنة عند استدعاء الحدث mouseup والحدث mousedown:

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>mousedown demo</title>
  <script src="https://code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
 
<p>Press mouse and release here.</p>
 
<script>
$( "p" )
  .mouseup(function() {
    $( this ).append( "<span style='color:#f00;'>Mouse up.</span>" );
  })
  .mousedown(function() {
    $( this ).append( "<span style='color:#00f;'>Mouse down.</span>" );
  });
</script>
 
</body>
</html>

مصادر