📋 Table of Contents
عند العمل مع jQuery، ستحتاج غالبًا إلى تحديد ما إذا كان عنصر HTML مخفيًا أو مرئيًا في الصفحة. توفر jQuery عدة طرق لفحص حالة رؤية العنصر، ولكل منها حالات استخدام محددة.
استخدام محدد :hidden
الطريقة الأكثر شيوعًا للتحقق مما إذا كان العنصر مخفيًا هي استخدام محدد :hidden في jQuery. يختار هذا المحدد العناصر المخفية لأي من الأسباب التالية:
- لديها قيمة CSS
display: none - هي عناصر نموذج بنوع
type="hidden" - العرض والارتفاع مضبوطان صراحةً على 0
- عنصر أصلي مخفي، لذا العنصر غير معروض على الصفحة
// التحقق مما إذا كان العنصر مخفيًا
if ($('#myElement').is(':hidden')) {
console.log('العنصر مخفي');
}
// طريقة بديلة باستخدام المحدد مباشرةً
if ($('#myElement:hidden').length > 0) {
console.log('العنصر مخفي');
}
استخدام محدد :visible
على العكس من :hidden، يمكنك استخدام محدد :visible للتحقق مما إذا كان العنصر مرئيًا. يختار هذا المحدد العناصر التي تستهلك مساحة في المستند:
// التحقق مما إذا كان العنصر مرئيًا
if ($('#myElement').is(':visible')) {
console.log('العنصر مرئي');
}
// استخدام طريقة not() للتحقق من أنه ليس مخفيًا
if (!$('#myElement').is(':hidden')) {
console.log('العنصر مرئي');
}
التحقق من خاصية CSS Display
إذا كنت تريد التحقق تحديدًا من خاصية CSS display، يمكنك استخدام طريقة .css(). هذا مفيد عندما تريد التمييز بين أنواع مختلفة من الإخفاء:
// التحقق من خاصية display
if ($('#myElement').css('display') === 'none') {
console.log('العنصر له display: none');
}
// مثال عملي - إظهار/إخفاء بناءً على الحالة الحالية
var element = $('#myElement');
if (element.css('display') === 'none') {
element.css('display', 'block');
} else {
element.css('display', 'none');
}
التحقق من خاصية Visibility
من المهم ملاحظة أن محدد :hidden لا يختار العناصر ذات visibility: hidden أو opacity: 0، لأن هذه العناصر لا تزال تستهلك مساحة في التخطيط. إذا كنت بحاجة للتحقق من هذه الخصائص، استخدم .css():
// التحقق من خاصية visibility
if ($('#myElement').css('visibility') === 'hidden') {
console.log('العنصر له visibility: hidden');
}
// التحقق من خاصية opacity
if ($('#myElement').css('opacity') === '0') {
console.log('العنصر له opacity: 0');
}
// فحص شامل لكل حالات الإخفاء
function isElementHidden(element) {
var $el = $(element);
return $el.is(':hidden') ||
$el.css('visibility') === 'hidden' ||
$el.css('opacity') === '0';
}
if (isElementHidden('#myElement')) {
console.log('العنصر مخفي بأي طريقة');
}
أفضل الممارسات
عند العمل مع رؤية العناصر في jQuery، ضع في اعتبارك أفضل الممارسات التالية:
- اختر الطريقة المناسبة: استخدم
:hidden/:visibleلفحوصات الرؤية العامة، و.css()عندما تحتاج للتحقق من خصائص CSS محددة - الأداء: يمكن أن يكون
:hiddenو:visibleأبطأ من فحوصات الخصائص المباشرة. في عمليات متكررة، فكر في التخزين المؤقت للنتائج - استخدم الطرق المدمجة في jQuery: استخدم
.show()و.hide()و.toggle()لإدارة الرؤية بدلاً من التلاعب اليدوي بـ CSS - فكر في العناصر الأصلية: تذكر أن العنصر الذي لديه عنصر أصلي مخفي سيُعتبر مخفيًا أيضًا
// مثال على أفضل الممارسات - استخدام طرق jQuery المدمجة
var $element = $('#myElement');
// بدلاً من الفحص والتعيين يدويًا
if ($element.is(':hidden')) {
$element.show();
} else {
$element.hide();
}
// ببساطة استخدم toggle()
$element.toggle();
// أو تبديل شرطي
$element.toggle(someCondition);
فهم هذه الطرق المختلفة للتحقق من رؤية العناصر يسمح لك بكتابة كود jQuery أكثر فعالية وموثوقية. اختر الطريقة التي تناسب احتياجاتك المحددة وفكر دائمًا في الآثار المترتبة على الأداء في تطبيقك.
🔗 Share this article
✍️ Leave a Comment