Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/439.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jquery循环单击事件不发生';t与等式(i)一起工作_Javascript_Jquery - Fatal编程技术网

Javascript jquery循环单击事件不发生';t与等式(i)一起工作

Javascript jquery循环单击事件不发生';t与等式(i)一起工作,javascript,jquery,Javascript,Jquery,我正在尝试将点击事件添加到6个按钮中,这些按钮将切换幻灯片6个不同的内容(按顺序)。 所以基本上我点击按钮1,内容1会向上/向下滑动,等等。 我在下面创建了代码,但我不知道如何循环它以使其更简单和有效 不带循环的工作代码: var dropdownButtons = $('div[class*="_dropdown_but"]'); var dropdownContents = $('div[class*="_dropdown_content"]');

我正在尝试将点击事件添加到6个按钮中,这些按钮将切换幻灯片6个不同的内容(按顺序)。 所以基本上我点击按钮1,内容1会向上/向下滑动,等等。 我在下面创建了代码,但我不知道如何循环它以使其更简单和有效

不带循环的工作代码:

var dropdownButtons = $('div[class*="_dropdown_but"]');
var dropdownContents = $('div[class*="_dropdown_content"]');


dropdownButtons.eq(0).click(function() {
    dropdownContents.eq(0).slideToggle();
});

dropdownButtons.eq(1).click(function() {
    dropdownContents.eq(1).slideToggle();
});

dropdownButtons.eq(2).click(function() {
    dropdownContents.eq(2).slideToggle();
});

dropdownButtons.eq(3).click(function() {
    dropdownContents.eq(3).slideToggle();
});

dropdownButtons.eq(4).click(function() {
    dropdownContents.eq(4).slideToggle();
});

dropdownButtons.eq(5).click(function() {
    dropdownContents.eq(5).slideToggle();
});
for (i = 0; i < dropdownButtons.length; i++) {
        dropdownButtons.eq(i).click(function() {
        dropdownContents.eq(i).slideToggle();
    });
}
我尝试使用FOR循环,但它不起作用,并且显示为无错误

我创建的循环无效:

var dropdownButtons = $('div[class*="_dropdown_but"]');
var dropdownContents = $('div[class*="_dropdown_content"]');


dropdownButtons.eq(0).click(function() {
    dropdownContents.eq(0).slideToggle();
});

dropdownButtons.eq(1).click(function() {
    dropdownContents.eq(1).slideToggle();
});

dropdownButtons.eq(2).click(function() {
    dropdownContents.eq(2).slideToggle();
});

dropdownButtons.eq(3).click(function() {
    dropdownContents.eq(3).slideToggle();
});

dropdownButtons.eq(4).click(function() {
    dropdownContents.eq(4).slideToggle();
});

dropdownButtons.eq(5).click(function() {
    dropdownContents.eq(5).slideToggle();
});
for (i = 0; i < dropdownButtons.length; i++) {
        dropdownButtons.eq(i).click(function() {
        dropdownContents.eq(i).slideToggle();
    });
}
for(i=0;i

我试着用不同的方式写“eq(I)”,比如“eq(+I+)”或“eq(+'I'+)”或“eq(+'I++')”,但没有任何改变。

在JavaScript中声明变量时,变量的作用域是
函数
它们是在
函数
中创建的,或者如果它们在
函数
之外,它们就存在于全局范围内

创建
函数
时,该函数将继承父
范围中的变量

当您在
for
循环的
内部创建
函数时,该函数将从父作用域继承
i
,当您单击任何下拉按钮时,
i
将增加到
下拉按钮。长度

为了解决
i
的这个问题,您应该在声明
i
之前添加
let
,这将使
i
的作用域成为
for
块,而不是
全局
作用域。继承
i
的任何函数都将具有
i
的副本,而不是原始的
i

for(设i=0;i
在JavaScript中声明变量时,变量的作用域为
函数
,它们是在
函数
中创建的,或者如果它们在
函数
之外,则它们存在于全局作用域中

创建
函数
时,该函数将继承父
范围中的变量

当您在
for
循环的
内部创建
函数时,该函数将从父作用域继承
i
,当您单击任何下拉按钮时,
i
将增加到
下拉按钮。长度

为了解决
i
的这个问题,您应该在声明
i
之前添加
let
,这将使
i
的作用域成为
for
块,而不是
全局
作用域。继承
i
的任何函数都将具有
i
的副本,而不是原始的
i

for(设i=0;i
\u dropdown\u content
靠近
\u dropdown\u但是
吗?我的意思是有任何位置关系,因为在这种情况下,你不需要循环。显示您的html结构可以帮助我们知道它是
\u dropdown\u content
靠近
\u dropdown\u但是
?我的意思是有任何位置关系,因为在这种情况下,你不需要循环。显示html结构可以帮助我们了解这一点