【发布时间】:2012-04-21 03:29:13
【问题描述】:
我知道这个问题是多余的,但我真的需要专家建议:
我在以下场景中以错误的方式使用 jQuery,希望尽可能多地提出建议以生成最有效的代码:
我有一个网页,其父 div 的 ID =“#bottomrightbox”。这个父“#bottomrightbox” div 包含一系列 div,其 ID 为“#20111”、“#20112”、“#20113”......
目前,我已经为这些 div(即 id #20111 的 div)中的每一个分配了一个链接(即 id 为 #link20111),单击该链接时会隐藏 #bottomrightbox div 的子项并显示特定的 div。所以我的代码如下所示,简单地响应每个链接的 onclick 函数,然后隐藏父 div 中的所有 div,并显示按名称分配给它的特定 div。我的问题是我有 40 多个带有特定链接的 div,这些链接遵循这种类型的命名顺序,所以我有重复的 jQuery 代码行,应该简化为一个处理这个过程的函数。 如果有人能告诉我一种编写 jQuery 函数的简单方法,我将不胜感激,该函数允许我在单击分配给它的链接时显示每个 div。
我的代码按以下方式工作:
链接 ID 为 #link20111 -> 单击 -> 隐藏 #bottomrightbox 的子项 -> 显示 ID 为 #20111 的 div
链接 ID 为 #link20112 -> 点击 -> 隐藏 #bottomrightbox 的子项 -> 显示 ID 为 #20112 的 div
链接 ID 为 #link20113 -> 点击 -> 隐藏 #bottomrightbox 的子项 -> 显示 ID 为 #20113 的 div
<script type="text/javascript">
$(document).ready(function () {
$('#link20111').click(function () {
$('#bottomrightbox').children().hide();
$('#20111').fadeIn(500);
});
$('#link20112').click(function () {
$('#bottomrightbox').children().hide();
$('#20112').fadeIn(500);
});
$('#link20113').click(function () {
$('#bottomrightbox').children().hide();
$('#20113').fadeIn(500);
});
});
</script>
非常感谢所有帮助。
这是此代码的示例/jsfiddle: http://jsfiddle.net/uhnxj/
【问题讨论】:
-
请考虑添加一些 HTML 作为示例或 jsfiddle 与您尝试实现的迭代
-
@RuiCarneiro 我不能 +1 你的评论吗..
-
对于初学者来说,id 不能以数字开头。你应该首先解决这个问题。
-
如需帮助确定可用于 ID 的内容,请参阅 What are valid values for the id attribute in HTML?
-
这里是 jsfiddle:jsfiddle.net/uhnxj