رفتن به مطلب

هایلایت کردن مادر دسته جاری در منوبار


sajjadmp

پست های پیشنهاد شده

سلام

نمونه بارز این کار سایت wordpress.org هست .

من فقط میخوام دسته ی مادر هایلایت بشه نه خود دسته ی زیر مجموعه .

من برای انجام این کار از کد زیر استفاده کردم ولی کار نداد ، ممنون می شم راهنمایی کنید .

<script>

$(document).ready(function() {

var active_cat_name = $("body.single div.post").attr("title");

$("ul.menu li.menu-item-object-category a").filter(function(index) {

return $(this).text() == active_cat_name; }).parent().addClass("current-menu-item");

});

</script>

لینک به ارسال


$('li.current-cat').parent().parent().addClass('highlight');

با تشکر از پاسخ ولی برای من جواب نداد .

منویی که من ازش استفاده می کنم به طور پیشفرض این کد رو داره برای اکتیو کردن دسته ی جاری ولی فقط توی صفحه ی اصلی کار میده ، یعنی خانه را اکتیو می کنه ولی توی بقیه ی صفحه ها دسته ها رو اکتیو نمی کنه :

/* Add active class */

if(in_array('current-menu-item', $classes)) {

$classes[] = 'active';

unset($classes['current-menu-item']);

}

لینک به ارسال

این رو هم چک کنید


<?php if(is_category()) : ?>
<script>
$(document).ready(function() {
$(".menu").find("a").each(function() {
var t = $(this).text();
if(t=="<?php single_cat_title( '', true ); ?>") {
$(this).parents("ul").prevAll("a").addClass("highlight");
}
});
})
</script>
<?php endif;?>

لینک به ارسال

خوب این کد رو حذف کنید

توی این کدی که شما دادید li.current-cat رو باید با چی جایگزین کرد ؟

یه سوال دیگه این که فرقی هم می کنه این کد رو توی هدر گذاشت یا توی فانکشن ؟

این رو هم چک کنید


<?php if(is_category()) : ?>
<script>
$(document).ready(function() {
$(".menu").find("a").each(function() {
var t = $(this).text();
if(t=="<?php single_cat_title( '', true ); ?>") {
$(this).parents("ul").prevAll("a").addClass("highlight");
}
});
})
</script>
<?php endif;?>

نحیر جواب نداد .

همونطور که برای دوستمون اون بالا هم توضیح دادم ، این منویی که من استفاده می کنم یه کدی رو به طور یشفرض توی فایل فانکشن قرار داده بود من اون کد رو حذف کردم و کد شما رو گذاشتم که جواب نداد .

لینک به ارسال

کد من ارتباطی با فانکشن نداره باید از صفحه سورس کد بگیرید و کلاس اصلی منو را پیدا کنید و جایگزین menu توی کد کنید و کد را در header.php قرار بدید

لینک به ارسال

کد من ارتباطی با فانکشن نداره باید از صفحه سورس کد بگیرید و کلاس اصلی منو را پیدا کنید و جایگزین menu توی کد کنید و کد را در header.php قرار بدید

همه ی کد هایی که من استفاده کردم


استایل
.current_page_item a {
background: #cccccc !important;
border: 1px solid #cccccc !important;
color: #787878 !important:
}
محل مورد نظر
<?php
wp_nav_menu(array(
'menu' => 'Main Navigation',
'container_id' => 'cssmenu',
'walker' => new CSS_Menu_Maker_Walker()
));
?>
هدر
<?php if(is_category()) : ?>
<script>
$(document).ready(function() {
$("#cssmenu").find("a").each(function() {
var t = $(this).text();
if(t=="<?php single_cat_title( '', true ); ?>") {
$(this).parents("ul").prevAll("a").addClass("current_page_item a");
}
});
})
</script>
<?php endif;?>

اما کار نمیده

لینک به ارسال

شما سئوالتون این بود که در صفحه ی دسته فرزند دسته مادر های لایت بشه درسته؟

کدی که دادم اینکار را می کنه اما اگر برگه های والد و فرزندی رو می خواهید های لایت کنید بحثش فرق می کنه

الان توی این کدتون کلاس


current_page_item a

را به پارنت نسبت دادید که توی کدهاتون این کلاس وجود نداره


.current_page_item a {
}

مفهومش عنصر a که فرزند عنصری با کلاس current_page_item است برای استایل دادن به کلاس current_page_item a باید به اینصورت عمل بشه


.current_page_item.a

نشانی آنلاین بگذارید چون فکر کنم کلا دارید راه را اشتباه می رید.

لینک به ارسال

شما سئوالتون این بود که در صفحه ی دسته فرزند دسته مادر های لایت بشه درسته؟

کدی که دادم اینکار را می کنه اما اگر برگه های والد و فرزندی رو می خواهید های لایت کنید بحثش فرق می کنه

الان توی این کدتون کلاس


current_page_item a

را به پارنت نسبت دادید که توی کدهاتون این کلاس وجود نداره


.current_page_item a {
}

مفهومش عنصر a که فرزند عنصری با کلاس current_page_item است برای استایل دادن به کلاس current_page_item a باید به اینصورت عمل بشه


.current_page_item.a

نشانی آنلاین بگذارید چون فکر کنم کلا دارید راه را اشتباه می رید.

بله من برای هایلایت کردن دسته میخوام و نه برگه .

اما استایل با استایل چه فرقی می کنه ؟

من توی کدی که شما دادید داخل add class دستور اجرای استایلcurrent_page_item a رو دادم .

این استایل بدون کد جاوا هم نام برگه ها رو توی منوبار اکتیو می کنه ولی دسته ها رو نه .

نشانی آنلاین ندارم ولی اگه خواستید فایل استایل منوبار و کد هاش رو براتون پیوست کنم .

لینک به ارسال

این استایلی که شما دادید تگ a را که داخل تگ دیگه ای با کلاس current_page_item باشه را هایلایت می کنه یعنی در


<ul id="cssmenu">
<li><a>item</a></li>
<li class="current_page_item"><a>parent</a>
<ul>
<li><a>child1</a></li>
<li><a>child2</a></li>
<li><a>Current Cat</a></li>
</ul>
</li>
<li><a>item</a>
</ul>

تمامی تگهای a مربوط به parent , chil1, child2, Current Cat رو هایلایت می کنه در صورتیکه شما می خواهید فقط تگ a مربوز به parent را های لایت کنید.

لینک به ارسال

این استایلی که شما دادید تگ a را که داخل تگ دیگه ای با کلاس current_page_item باشه را هایلایت می کنه یعنی در


<ul id="cssmenu">
<li><a>item</a></li>
<li class="current_page_item"><a>parent</a>
<ul>
<li><a>child1</a></li>
<li><a>child2</a></li>
<li><a>Current Cat</a></li>
</ul>
</li>
<li><a>item</a>
</ul>

تمامی تگهای a مربوط به parent , chil1, child2, Current Cat رو هایلایت می کنه در صورتیکه شما می خواهید فقط تگ a مربوز به parent را های لایت کنید.

current_page_item a یه کلاس قراردادیه برای برگه ی جاری ، حتما لازم نیست که همچین کلاسی رو توی منو داشته باشیم .

منوی من فاقد همچین کلاسیه ولی برگه ی جاری رو اکتیو می کنه .

خوب حالا بگذریم ، چر فرقی داره چه کلاسی رو به add class معرفی کنیم ؟

مهم اینه که کد شما اشکالی داره .

لینک به ارسال

متوجه منظور من نشدید

نشانی آنلاین بگذارید

سایتتون رو توی یک هاست آنلاین آپ کنید و بعد از آماده شدن اطلاع دهید

لینک به ارسال
  • 3 ماه بعد...

متوجه منظور من نشدید

نشانی آنلاین بگذارید

سایتتون رو توی یک هاست آنلاین آپ کنید و بعد از آماده شدن اطلاع دهید

بفرمایید اینم نشانی

لینک به ارسال

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...