我正在尝试使用一些JavaScript来允许用户点击一些div。我已将代码上传到JSFiddle,您可以在此处查看:http://jsfiddle.net/WjRK2/64/
我认为我遇到的问题是尝试切换div的类,以便它们能够与JavaScript一起正常工作:
$('#menu a').click(function (e) {
$('#content div.level1').removeClass('makeVisible');
divToMakeVisible = $(this).attr('href');
$(divToMakeVisible).addClass('makeVisible');
e.preventDefault();
});
任何帮助都是受欢迎的,因为我觉得我陷入了困境,我无法弄清楚如何摆脱它。
答案 0 :(得分:0)
所以,感谢最小的/ SSCCE演示。
除了讽刺之外,你的代码存在问题(很多):
您的ul
拥有id='menu2'
,您尝试使用a
(id="menu"
)选择元素中的$('#menu a')
元素。正如您所料,这不会,并且无法工作。而是使用选择器:
$('#menu2 a')
您的JavaScript正在添加类makeVisible
,您的CSS期望类名为makeVisable
,再次这不起作用(或者至少在CSS尝试设置样式时无效)您的JavaScript正在添加/删除的类名称;注意拼写:JavaScript区分大小写和(非常)拼写敏感。它不会,也不会真的 不应该尝试猜测你想要做什么。
此外,document.getElementById()...
的墙是什么?如果你正在使用jQuery 使用 jQuery;是的,DOM更快,但特别是在演示中,让我们很容易帮助您。弄清楚正在做什么(特别是当div11
到div20
不存在事件时)是令人恼火的,而且是不必要的。所以,在我正在链接的代码演示中(暂时),我用jQuery替换了它:
$('#content div').each(function(i){
$(this).addClass('level1');
});
无论如何,上面列出了我修正的更正;更新的演示在这里:http://jsfiddle.net/davidThomas/WjRK2/70/
哦,如评论中所述,如果您的演示使用jQuery,请花点时间在您提供的演示中包含jQuery(它是页面左上角select
框中的一个选项)