我有products的全局菜单和本地菜单。我想在展示产品时突出显示“我们的产品”链接,并在本地菜单中突出显示产品名称及其子页面,以便突出显示的链接可用作面包屑。我怎么能用jquery和codeigniter或只是jquery来做这件事。 这是本地菜单的代码:
<ul id="accordion">
<li class="pm"><h2><?php echo anchor('/products/thassos_wonder', 'Thassos Wonder+');?></h2>
<ul class="product_menu">
<h2><?php echo anchor('/products/thassos_wonder', 'Thassos Wonder+');?></h2>
<h2><?php echo anchor('/products/thassos_wonder_advantages', 'Thassos Wonder+ Advantages');?></h2>
<h2><?php echo anchor('products/thassos_wonder_associated_products', 'Associated Products');?></h2>
<h2><?php echo anchor('/products/thassos_wonder_brochure', 'Download TW+ Brochure');?></h2>
</ul>
</li>
<li class="pm"><h2><?php echo anchor('/products/marble_wonder', 'Marble Wonder+');?></h2>
<ul class="product_menu" id="mwmenu">
<h2><?php echo anchor('/products/marble_wonder', 'Marble Wonder+');?></h2>
<h2><?php echo anchor('/products/marble_wonder_advantages', 'Marble Wonder+ Advantages');?></h2>
<h2><?php echo anchor('products/marble_wonder_associated_products', 'Associated Products');?></h2>
<h2><?php echo anchor('/products/marble_wonder_brochure', 'Download MW+ Brochure');?></h2>
</ul>
</li>
<li class="pm"><h2><?php echo anchor('/products/polybond', 'Poly Bond+');?></h2>
<ul class="product_menu" id="pbmenu">
<h2><?php echo anchor('/products/polybond', 'Poly Bond+');?></h2>
<h2><?php echo anchor('/products/polybond_advantages', 'PolyBond+ Advantages');?></h2>
<h2><?php echo anchor('products/polybond_areas_of_applications', 'Areas of Applications');?></h2>
<h2><?php echo anchor('/products/polybond_brochure', 'Download Polybond+ Brochure');?></h2>
</ul>
</li>
以下是本地菜单的jquery代码:
$(function() {
var pathname = location.pathname;
var highlight;
//highlight home
if(pathname == "/"){
highlight = $('ul#accordion > li:first > a:first');
$('a.active').parents('li').addClass('active');
}
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();
//if you only have a 2 level deep navigation you could
//use this instead
//$('a.selected').parents("ul").eq(0).show();
});
仍在学习jquery,所以我们将不胜感激。 谢谢 - G
答案 0 :(得分:1)
你可以通过几种不同的方式做到这一点,一种方法是始终识别你的身体标签和锚标签,并使用CSS选择器来完成这项工作。
我喜欢使用控制器的名称来识别我的身体标签,它非常方便。
在这种情况下,您的body标签将ID设置为'products',将其与您锚点上的ID结合使用,您可以使用这样的CSS
#products #productLink {
color: #ff8833;
}
另一种方法是使用CI中的辅助函数来检查当前URI的链接,并为锚点添加一个“活动”类,如下所示。
function menu_anchor($uri = '', $title = '', $attributes = array())
{
if ( $uri == uri_string() )
{
$attributes['class'] = ( isset($attributes['class']) ) ? ' active' : 'active';
}
return anchor($uri, $title, $attributes);
}
答案 1 :(得分:0)
我创建了一个帮助函数,可以帮助在codeigniter框架中自动创建面包屑。
有关详细信息,请查看以下帖子 -
http://www.thephpx.com/2010/05/12/codeigniter-helper-create-breadcrumb-from-url/
感谢,
费萨尔艾哈迈德 http://www.thephpx.com/