jQuery 动态按钮选择器

jQuery dynamic button selector

为什么这不起作用?它第一次工作,变量得到更新(我可以看到它),但在第一次之后它不起作用。

$(document).ready(function($) {
 
  var question = 1;
  $("ul#question"+question+" li").on( "click", function(e) { 
    $(this).addClass("test" + question);
    question++; 
  });
  
});

我想做的是对 6 个不同的按钮使用相同的按钮操作。它必须是这样的,这样我就可以在每个人身上分别使用 off()。

否则我必须将相同的代码写出 6 次。也许有更好的方法,我只是不明白为什么这不起作用。

谢谢

增加变量不会改变事件处理程序的选择器。您可以使用 class 选择器,然后在事件处理程序中测试 id:

var question = 1;
  $("ul.question li").on( "click", function(e) {
    if ($(this).closest("ul").attr("id") === "question"+question) {
        $(this).addClass("test" + question);
        question++; 
    }
  });

更新

甚至:

var question = 1;
  $("ul[id^='question'] li").on( "click", function(e) {
    if ($(this).closest("ul").attr("id") === "question"+question) {
        $(this).addClass("test" + question);
        question++; 
    }
  });

这只是我的想象,因为我不知道你的 html 长什么样。

当您有 6 个不同 ID 的按钮时,您只需创建 1 个操作。 尝试在您的按钮中使用具有相同类名的 .each

var question = 1;
$('.question').each(function() {
    $("ul#question"+question+" li").on( "click", function(e) { 
        $(this).addClass("test" + question);
    });
question++; 
});