我想要做的是给父母一张背景图片。
所以我在菜单中有一个子菜单。
这是我正在尝试的jquery ..
$('li.on').closest('ul').parent('li').css({ backgroundImage: 'url(/content/images/point.png)', backgroundRepeat: 'no-repeat' }); ;
我认为我在父母位上出错了?
这是菜单......
<div class="sideMenu2">
<ul>
<li><a href>retail</a>
<ul class="subsideMenu2">
<li ><a href="/portfolio/5/0">cabot circus</a></li>
<li><a href="/portfolio/6/0">st. stephen's</a></li>
<li><a href="/portfolio/7/0">silverburn</a></li>
<li><a href="/portfolio/8/0">the elements</a></li>
</ul>
</li>
<li><a href>sports & leisure</a>
<ul class="subsideMenu2">
<li class= "on"><a href="/portfolio/19/0">test</a></li>
</ul>
</li>
</ul>
所以,如果我点击测试,体育和休闲应该得到背景,但目前零售是。
答案 0 :(得分:1)
看起来您忘了绑定click
处理程序。在用户点击锚点(<a>
)时阻止默认操作也很重要。
$('li.on a').on('click', function(event) {
event.preventDefault();
$(this).closest('ul').parent('li').css({
'backgroundImage': 'url(/content/images/point.png)',
'backgroundRepeat': 'no-repeat'
});
});
答案 1 :(得分:0)
零售业正在获得它的原因是因为你在jquery表达的开头表示你有$('li.on')
。这是在零售业中选择li
所以当它正在上升其影响零售时。
您需要获得正确的第一个jquery表达式才能获得正确的目标。这可能就像将其更改为$(this)
一样简单,如果它在点击处理程序中,但您所做的事情将取决于上下文。