سؤال

تظهر قائمةتي الروابط النشطة عند النقر عليها باستثناء رابط المنزل (http://www.obsia.com.). لا يتم تمييزه أبدا. حاولت اللعب ولكن لا يمكنني معرفة ذلك. هذا هو رمز مسج اعتدت لتسليط الضوء على الروابط؟

 $(function(){
   var path = location.pathname.substring(1);
   if ( path )
     $('.nav a[href$="' + path + '"]').attr('class', 'active');   
 });

لدي أيضا قائمة أخرى على صفحات المنتجات حيث أود أن أبرز أولياء أمور الأخوة ومنتجاتنا في القائمة العالمية. هذا هو رمز مسج في قائمة المنتجات:

 $(function() {
var pathname = location.pathname;
var highlight;
//highlight home
if(pathname == "")
    highlight = $('ul#accordion > li:first > a:first');
else {
    var path = pathname.substring(1);
    if (path)
        highlight = $('ul#accordion a[href$="' + path + '"]');
}highlight.attr('class', 'active');



// hide 2nd, 3rd, ... level menus
$('ul#accordion ul').hide();

// show child menu on click
$('ul#accordion > li > a.product_menu').click(function() {
    //minor improvement
    $(this).siblings('ul').toggle("slow");
    return false;
});

//open to current group (highlighted link) by show all parent ul's
$('a.active').parents('ul').show();
$('a.active').parents('h2 a').css({'color':'#ff8833'});

//if you only have a 2 level deep navigation you could
//use this instead
//$('a.selected').parents("ul").eq(0).show();

}); });

حاولت إضافة هذا:

        $(this).parents('ul').addClass('active');

لكن هذا لا يبدو أن تفعل الخدعة؟

هل لدى أي شخص طريقة بسيطة لإنجازها؟ سيكون موضع تقدير أي مساعدة منك يا رفاق.

تحياتي لطيفة، ز

هل كانت مفيدة؟

المحلول

أنا تصحيح جافا سكريبت الخاص بك. لا يبرز الرابط المنزل لأنه، بالنسبة للصفحة المنزلية، يتم تقييم الموقع.pathname إلى السلسلة "/". وبالتالي يتم تعيين "المسار" المتغير السلسلة الفارغة. هذا يعني أنه لم يتم تعيين "تسليط الضوء" المتغير.

// path is assigned the empty string
var path = location.pathname.substring(1);

// evaluating to false
if (path) {
    // we never get here
    highlight = $('ul#accordion a[href$="' + path + '"]');
}

// getting a null pointer exception
highlight.attr('class', 'active');

نصائح أخرى

في Firebug أحصل عليه تسليط الضوء غير محدد على الخط }highlight.attr('class', 'active'); يبدو أنك قد تحتاج إلى تصحيح الأقواس حول بيان إذا كان أعلاه؟

اكتشفت كيفية الحصول على رابط الصفحة الرئيسية لتسليط الضوء في شريط القوائم (كان الرابط الوحيد الذي لن يبرز على شريط القوائم). هنا هو ما فعلته:

 $(function(){
   var pathname = location.pathname;
   var path = pathname.substring(1);
    if(path == "")
        $('.nav a:first').addClass('active');
   else (path)
     $('.nav a[href$="' + path + '"]').attr('class', 'active');   
 });
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top