متد toggle

تغییر وضعیت نمایش عناصر با toggle و toggleClass

متد toggle()

متد toggle() هوشمندترین متد نمایش است: اگر عنصر نمایان باشد مخفی‌اش می‌کند و اگر مخفی باشد نمایشش می‌دهد. دیگر نیازی به دو دکمه جدا برای hide و show نیست!

$(selector).toggle(speed, callback);
// یک دکمه برای باز و بسته کردن
$("#menuBtn").click(function() {
    $("#menu").toggle("slow");
});

خانواده متدهای toggle

متدکار
toggle()تغییر وضعیت نمایش (hide/show)
slideToggle()تغییر وضعیت با افکت کشویی
fadeToggle()تغییر وضعیت با افکت محو
toggleClass()افزودن/حذف کلاس CSS

toggle در animate

داخل متد animate() هم می‌توانید از مقدار "toggle" استفاده کنید:

// باز و بسته شدن ارتفاع عنصر
$("button").click(function() {
    $("div").animate({ height: "toggle" });
});

toggleClass: بهترین دوست toggle

متد toggleClass() اگر کلاس وجود نداشته باشد اضافه‌اش می‌کند و اگر داشته باشد حذفش می‌کند — عالی برای حالت‌های روشن/خاموش:

// روشن و خاموش کردن حالت شب
$("#darkModeBtn").click(function() {
    $("body").toggleClass("dark-theme");
});

// علامت‌گذاری آیتم‌های لیست کارها
$("li").click(function() {
    $(this).toggleClass("completed");
});
ترکیب toggleClass با CSS بهتر از تغییر مستقیم استایل با css() است؛ چون منطق ظاهری در فایل CSS می‌ماند و کد jQuery فقط وضعیت را عوض می‌کند.

مثال کاربردی: دکمه «نمایش بیشتر»

$("#moreBtn").click(function() {
    $("#extraContent").slideToggle(400, function() {
        var isShown = $(this).is(":visible");
        $("#moreBtn").text(isShown ? "نمایش کمتر ▲" : "نمایش بیشتر ▼");
    });
});

جمع‌بندی

این مبحث بخشی از دوره آموزش کامل jQuery است.

ابزارهای مرتبط