我制作了一些菜单,其中包含在用户单击它们时展开的项目。每当菜单项展开时,项目的标题都应该使用 .css() 更改样式
由于菜单的样式不同,脚本中有一个 if 语句,用于检查用户是否单击了 menu2 或 menu3 项以在展开时应用适当的样式。
编辑:问题是样式更改没有按应有的方式应用。
我按照 Sushanth 的建议将 $this 替换为 $(this) ,但问题仍然存在,请查看示例(已更新)
代码:
<script type='text/javascript'>
$(window).load(function(){
$(document).ready(function() {
$(".toggle-trigger").click(function() {
$(this).parent().nextAll('.toggle-wrap').first().slideToggle('slow','swing');
if( $(this).is("menu2 .headline a")) {
$(this).toggle(
function(){
$(this).parent().css("background-color","rgba(0, 0, 0, 0.1)",'border', 'solid 2px #009e0f');
$(this).css("color","#009e0f");
},
function(){
$(this).parent().css("background-color","#009e0f","border",'solid 2px #009e0f');
$(this).css("color","#ffffff");
}
);
}
else if( $(this).is("#menu3 .headline a")) {
$(this).toggle(
function(){
$(this).parent().css("background-color","rgba(0, 0, 0, 0.1)",'border', 'solid 2px #f7b50c');
$(this).css("color","#f7b50c");
},
function(){
$(this).parent().css("background-color","#009e0f","border",'solid 2px #f7b50c');
$(this).css("color","#ffffff");
}
);
}
});
});
});