如何优化此JavaScript
我正在使用下面的JavaScript在我的菜单中调出一些信息 是否可以优化它,使我只有一个函数而不是n如何优化此JavaScript,javascript,Javascript,我正在使用下面的JavaScript在我的菜单中调出一些信息 是否可以优化它,使我只有一个函数而不是n $(document).ready(function(){ $("#km1").click(function(){ $("#km1tog").slideToggle("slow"); }); }); $(document).ready(function(){ $("#km2").click(function(){ $("#km2tog").slideToggle("slo
$(document).ready(function(){
$("#km1").click(function(){
$("#km1tog").slideToggle("slow");
});
});
$(document).ready(function(){
$("#km2").click(function(){
$("#km2tog").slideToggle("slow");
});
});
$(document).ready(function(){
$("#km3").click(function(){
$("#km3tog").slideToggle("slow");
});
});
尝试:
你试过这个吗
$(document).ready(function() {
$.each([1,2,3,4,5,6,7,8,9,10], function(i) {
$("#km" + i).click(function(){
$("#km" + i + "tog").slideToggle("slow");
});
});
});
您可以使用for循环并创建IIFE,以保留
i
的值
$(document).ready(function() {
for (var i = 1; i <= 3; i += 1) {
(function(i) {
$("#km" + i).click(function() {
$("#km" + i + "tog").slideToggle("slow");
});
}(i));
}
});
$(文档).ready(函数(){
对于(var i=1;i对于一个开始,您只需要一个$(document)。ready
调用,这样可以稍微优化它。至于其余部分,它在很大程度上取决于标记的结构
理想情况下,您不会在元素上使用ID,您只需通过它们的关系引用它们,例如:
$(document).ready(function(){
$(".top-menu").click(function(){
$(this).find(".sub-menu").slideToggle("slow");
});
});
如果可能,将一个类添加到所有“可单击”div中,然后尝试以下操作:
$(document).ready(function(){
$(".km").click(function(){
id = $(this).attr('id');
$("#"+id+"tog").slideToggle("slow");
});
});
给他们一个类,并用它来代替id。$('.km')。slideToggle('slow');
@MarkWalters类将隐藏除OP之外的所有对象,但只想隐藏特定项。@ZaheerAhmed。对不起,我的意思是。$('.km')。单击(函数(){$(this.slideToggle('slow'););
看起来属于$。每个都有一个硬编码数组,而不是for
循环?Wut?你知道它在实际示例中是否是硬编码的吗?OP硬编码的3 id。这是一种不好的做法,不应该鼓励。特别是如果建议的替代方法是硬编码简单for循环的所有迭代。你的代码表示:for(var输入[1,2,3,4,5,6,7,8,9,10])
而不是for(var i=1;i$(this.attr('id');
…this.id
$(document).ready(function(){
$(".km").click(function(){
id = $(this).attr('id');
$("#"+id+"tog").slideToggle("slow");
});
});