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++;
});
为什么这不起作用?它第一次工作,变量得到更新(我可以看到它),但在第一次之后它不起作用。
$(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++;
});