Abr*_*iel 19 css wordpress jquery
我目前正在建立一个WordPress站点,使用该模板从ThemeForest,这里是实时预览的就是我目前的工作(现在应该是工作-请让我知道,如果它不工作).
我配置了CSS,因此悬停时的左边框将是浅灰色.然后,当点击链接时,左边框将是我选择的蓝色.
如下图所示,我在导航中遇到的主要问题是CSS.投资组合链接(图片中的投资组合部分)仍然具有所选的类以及内部无序列表项.我希望它看起来像图片中的博客部分,其中博客链接不再应用所选的课程项目.
我问模板的创建者为什么会这样; 他的回答是,下面需要另一个包含title属性'allportfolio'的链接,以便它能正常工作.我尝试将此属性添加到主要的Portfolio链接,但随后完全关闭了列表.

创建菜单后,浏览器将按以下方式在HTML中创建项目组合选择:
<ul class="main-menu" id="menu-main-menu">
<li class="parent selected" id="menu-item-1172">
<p><a href="http://localhost/portfolio/" style="color: rgb(57, 57, 57);">Portfolio</a></p>
<div>
<ul class="sub-menu">
<li class="menu-item" id="menu-item-1158"><p><a data-filter="website-design" data-category="true" href="#">Website Design</a></p></li>
<li class="menu-item" id="menu-item-1157"><p><a data-filter="print" data-category="true" href="#">Print</a></p></li>
<li class="menu-item selected" id="menu-item-1156"><p><a data-filter="motion" data-category="true" href="#">Motion</a></p></li>
<li class="menu-item" id="menu-item-1155"><p><a data-filter="identity" data-category="true" href="#">Identity</a></p></li>
<li class="menu-item" id="menu-item-1167"><p><a data-filter="logos" data-category="true" href="#">Logos</a></p></li>
</ul>
</div>
</li>
Run Code Online (Sandbox Code Playgroud)
我尝试了类似于这个答案的东西,但没有奏效,因为它似乎没有在列表项中包含任何内容.以下jQuery代码是我的尝试:
/*Portfolio links remove selected CSS setting*/
$('ul#menu-main-menu ul.submenu li p a').click(
function(){
$('ul#menu-main-menu li').removeClass('parent selected');
$(this).addClass('parent menu-item');
});
Run Code Online (Sandbox Code Playgroud)
我感到困惑,因为我无法弄清楚如何使HTML看起来像下面(取出CSS类'选择'并添加CSS类'菜单项'):
<ul class="main-menu" id="menu-main-menu">
<li class="parent menu-item" id="menu-item-1172">
<p><a href="http://localhost/portfolio/" style="color: rgb(57, 57, 57);">Portfolio</a></p>
<div>
<ul class="sub-menu">
<li class="menu-item" id="menu-item-1158"><p><a data-filter="website-design" data-category="true" href="#">Website Design</a></p></li>
<li class="menu-item" id="menu-item-1157"><p><a data-filter="print" data-category="true" href="#">Print</a></p></li>
<li class="menu-item selected" id="menu-item-1156"><p><a data-filter="motion" data-category="true" href="#">Motion</a></p></li>
<li class="menu-item" id="menu-item-1155"><p><a data-filter="identity" data-category="true" href="#">Identity</a></p></li>
<li class="menu-item" id="menu-item-1167"><p><a data-filter="logos" data-category="true" href="#">Logos</a></p></li>
</ul>
</div>
</li>
Run Code Online (Sandbox Code Playgroud)
更新:@limelights答案似乎工作,但我发现一些jQuery影响网站上的链接悬停效果,并不确定这是否是代码的答案不起作用的原因是在scripts.js文件中WordPress模板
/* Links roll over effect */
$('a').each(function(){
if(!$(this).data('filter') && !$(this).parent().parent().parent().hasClass('pagination'))
$(this).hoverFadeColor();
})
Run Code Online (Sandbox Code Playgroud)
此外,我非常接近我想要完成的任务,使用此代码最终保持内部链接打开:
/*Portfolio links remove selected CSS setting*/
$('ul#menu-main-menu li div ul.sub-menu:first li.menu-item p a').click(
function(){
$('ul#menu-main-menu > li').removeClass('selected');
$('ul#menu-main-menu > li').css({'color' : '#222'}).addClass('menu-item');
$('ul#menu-main-menu li div:first').show();
});
Run Code Online (Sandbox Code Playgroud)
但是,它仍然在做什么(如下所示)是它仍然选择了像所选文本一样的文本.

任何帮助是极大的赞赏!
我对你的 css 做了一些小改动,并在你的 html 页面中添加了一些 jquery 函数,如下所示:
CSS 更改:
在您的 custom.css 中找到第 67 行并替换编码,如下所示:
/*Turns link background white and removes border on the left at hover*/
.Light #menu ul.main-menu > li:hover > p > a {
background:#FFF;
border-left:6px solid #F0F0F0;
}
Run Code Online (Sandbox Code Playgroud)
上面的这个替换成
/*Turns link background white and removes border on the left at hover*/
.Light #menu ul.main-menu > li:hover > p > a {
background:#FFF;
/*border-left:6px solid #F0F0F0;*/
}
Run Code Online (Sandbox Code Playgroud)
在主题页眉或页脚文件的某些位置添加 Jquery 函数,如下所示,
<script type="text/javascript">
$(document).ready(function() {
$("#menu-main-menu li:first").addClass("selected");
$("#menu-main-menu li p a").css("border-left","none");
$("#menu-main-menu li p a").hover(function(){$(this).css("border-left","6px solid #F0F0F0");});
$("#menu-main-menu li").click(function() {
$(this).addClass("selected");
});
});
</script>
Run Code Online (Sandbox Code Playgroud)
上述更改对我有用。要查看它的实际效果:http ://jsbin.com/ehagal/1
我认为这可以帮助您解决您的问题。