جار التحديث ...
جار التحديث ...

كيف يمكنني عم اثنين onclick في عنصر واحد لاستدعاء وظيفتي جافاسكريبت

  • 0

كيف يمكنني عم اثنين onclick في عنصر واحد لاستدعاء وظيفتي جافاسكريبت  " بالظغط للمرة الأولي على العنصر يتم تنفيذ الfunction الأولى وعند الضغط علىيه للمرة الثانية ينفذ function أخرى

إجابات المستخدمين (2)


يمكنك القيام بذلك عبر استدعاء الحدث onClick مرة واحدة ولكن يختلف التنفيذ في المرة الأولى عن الثانية

سأورد لك مثالاً بسيطاً يساعدك:

كود HTML:

<h1 class="myClass">first and second</h1>


كود jQuery:

$('.myClass').click(function() {
  var clicks = $(this).data('clicks');
  if (clicks) {
     alert("odd");
  } else {
     alert("even");
  }
  $(this).data("clicks", !clicks);
});

في هذه الحالة في المرات الفردية للضغط سيظهر alert مختلف عن المرات الزوجية...يمكنك أن تجرب الكود وتلاحظ ذلك

أرجو أن تكون قد وضحت الفكرة....


  • 1
رد على التعليق (0)

الردود :


لا يوجد ردود بعد


سجل الدخول لاضافة رد
  • عضو أكاديمي
  • عضو جديد
  • قبل شهر

ضروري انك تجيب السيناريو كامل عشان نعرف نصيغ الكود بشكل صحيح .

هذا كود مبدئي بإستخدام الجيكويري .

HTML

<button class="doSomthing" > Click </button>

Javascript


let firstClick = true;
$('.doSomthing').on('click',function(){
  if(firstClick){
    // DO THE FIRST CODES

    // This line to indecate that the first click is performed 
    firstClick = false;  
      }else{
       // DO THE SECOND CODES 
       
        // This line to indecate that the second click is performed 
       firstClick = true;  
      }
    })


شرح الكود :

في الكود الي فوق معانا زر . مسوين له كلاس عشان نستطيع تحديده بالجيكويري .

وفي الكود الي تحت عملنا متغير من نوع Boolean عشان نحدد هل احنا في الضغطه الاولى ام الثانيه .

وقمنا بعمل فحص إذا كنا في الضغطه الاولى قم بعمل الكود وقم بتغيير قيمة المتغير عشان لا يكرر العمل في الضغطه الثانيه وهكذا .

--------------------------

طبعاً هذا الكود لا ينصح بإستخدامه في الواقع وإنما بغرض الشرح . لأنو المعلومات الي جبتها ناقصه فما عرفت ايش الصيغه الصحيحه للكود الي انت تحتاجه .


  • 0
رد على التعليق (0)

الردود :


لا يوجد ردود بعد


سجل الدخول لاضافة رد
سجل الدخول لاضافة اجابة جديدة