【发布时间】:2017-01-19 13:53:35
【问题描述】:
我有这样的东西,但它不起作用:
<!-- ... code .. -->
var id = 0;
data.forEach(function(item, i) {
id = id+1;
$( ".button-" + id ).click(function() {
$( ".button-" + id ).toggle();
});
<!-- ... code .. -->
我想要什么:有一些 DIV,例如 button-1、button-2 ... 等等。我做了一个切换,我想用这个循环来自动化它,因为内容是动态生成的。但这似乎是错误的方式......在这个循环中它不起作用。
那么如何为 button-1、button-2、... 进行动态切换??
差不多就是这个,好像是错的:
$( ".button-" + id ).click(function() {
$( ".button-" + id ).toggle();
编辑
好吧,也许我的问题有点乱????到目前为止,谢谢大家的回答,我真的很感激!但是对我来说没有正确的答案......所以又一次,现在更具体:
我有一些带有材质图标的按钮,它们应该在点击时改变它们的状态。
<a href="" class="likebutton-1"><i class="material-icons">favorite</i></a>
<a href="" class="likebutton-1" style="display:none;"><i class="material-icons">favorite_border</i></a>
HTML内容是动态生成的,所以有likebutton-1,likebutton-2...
然后是另一个 DIV,它显示了许多喜欢:
<div class="likes-1">99 likes</div>
<div class="likes-1" style="display:none;">100 likes</div>
DIV 都在一个外部容器中。
这是我的 jQuery 代码:
$( ".likebutton-1" ).click(function() {
$( ".likebutton-1" ).toggle();
$( ".likes-1" ).toggle();
});
嗯,该代码对我有用。图标从最喜欢切换到最喜欢的边框,喜欢从 99 切换到 100...(这只是一个演示应用程序,因此不需要真正计算喜欢)
但我也想动态生成该 jQuery 代码,但那是行不通的...现在我必须为 likebutton-1、likebutton-2 手动设置切换...
【问题讨论】:
-
data变量中有什么? -
以上内容太零碎,我们无法提供有意义的帮助。在问题中添加minimal reproducible example,理想情况下使用 Stack Snippets(
[<>]工具栏按钮)使其可运行。 -
他的问题将是他的所有点击处理程序都将具有最后一个 forEach 循环的 id 值,因为它们在运行时都引用相同的 id 变量,所以所有按钮都会切换最后一个按钮应该是什么切换。
-
嘿,抱歉,我对其进行了编辑以使其(希望)更清晰......
-
不完全相关,但为什么不直接做++id?
标签: javascript jquery html toggle event-listener