jQuery动态按钮选择器

时间:2015-03-24 06:34:46

标签: javascript jquery variables dynamic selector

这是否有理由不起作用?它第一次工作,变量得到更新(我可以看到它),但它在第一次之后没有工作。



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




我尝试做的是对6个不同的按钮使用相同的按钮操作。它必须是这样的,所以我可以单独使用off(),就像我一样。

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

由于

2 个答案:

答案 0 :(得分:2)

递增变量不会改变事件处理程序的选择器。您可以使用类选择器,然后在事件处理程序中测试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++; 
    }
  });

答案 1 :(得分:0)

这只是我的想象力,因为我不知道你的HTML看起来像。

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

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