这是否有理由不起作用?它第一次工作,变量得到更新(我可以看到它),但它在第一次之后没有工作。
$(document).ready(function($) {
var question = 1;
$("ul#question"+question+" li").on( "click", function(e) {
$(this).addClass("test" + question);
question++;
});
});

我尝试做的是对6个不同的按钮使用相同的按钮操作。它必须是这样的,所以我可以单独使用off(),就像我一样。
否则我必须写出相同的代码6次。也许有更好的方法,我只是不明白为什么这不起作用。
由于
答案 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++;
});