English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

طريقة تحديد ما إذا كان النقر على علامة التبويب input أم غيرها من العلامات في chrome

الوظيفة التي يتم تنفيذها عند فقدان focus من مربع الإدخال وإذا لم يتم الضغط على زر الحذف، يتم تنفيذ طريقة reset لإعادة تعيين نمط input، عند الضغط على زر الحذف، يتم تنفيذ طريقة clear لحذف محتوى input.

كما في الشكل

كنت أرغب في تنفيذ الكود التالي

$(".search-input").focusout(function () {
          if (document.activeElement.className !== 'close-t') { //close-t هو اسم فئة الزر النظيف
            $('.search-input').addClass('search-before');
            $('.close').css('display', 'none');
            document.getElementById('search').value = '';
          }
});

باستثناء ذلك، عندما يفقد input فراغه التركيز، أول ما يصبح التركيز عليه هو علامة التبويب الجسم، ولأنهذا، لم يعد هذا الطريقة يعمل، وأخيرًا تم تنفيذ هذا الوظيفة باستخدام الكود التالي

$("#search").focusout(function () {
  //تحقق ما إذا كان النقر على زر المسح بعد فقدان التركيز، وإذا كان كذلك، فلا يتم إعادة تعيين
  var tapCloseButton = false;
  $('.close-t').focus(function () {
    tapCloseButton = true;
  });
  setTimeout(function () {
    if (!tapCloseButton) {
      $('.search-input').addClass('search-before');
      $('.close').css('display', 'none');
      document.getElementById('search').value = '';
    }
  },10);
});

لذا يتم تأخير تنفيذ خطوة التركيز هذه، مما يعني أن التركيز قد انتقل من الجسم إلى العنصر الذي تم النقر عليه حقًا، وعندما يتم التحقق من التركيز مرة أخرى، يتم التحقق مما إذا كان المفتاح النظيف.

هذا النص الموجود أعلاه هو طريقة تحديد ما إذا كان النقر على علامة التبويب الخاصة بـ input أم على علامة التبويب الأخرى في Chrome، وهو ما أشاركه معكم. آمل أن يكون هذا مرجعًا لكم، وأتمنى أن تدعموا دليل呐喊 بشكل كبير.

توصيات لك