我的代码只需单击一个按钮即可生成不同的元素。生成的元素之一是按钮,我想打开和关闭部分生成的文本。jQuery .toggle() 函数适用于生成的第一个元素。然后,它仅适用于生成的最新元素和之前的所有其他元素(例如,生成了 5 个元素,它将适用于 5、3、1,但不适用于 2 和 4)。我认为这似乎是该类的问题,因为我可以从 Firefox 的 Web 控制台使用 .toggle() 命令手动删除它。我想这意味着按钮没有触发。我很茫然。
这是一个显示行为的 jsFiddle http://jsfiddle.net/JaLBR/1/ 这是代码:
recursionCounter = 0
$(document).ready(function(){
$("#compute").click(function(){
//add the toggle data
$("#buttons").append("<input type=button value=\"Toggle\" class=\"removeBtn\" id=\"recursion" + recursionCounter + "\">")
//add the recursion counter to the div element
$("#recursion" + recursionCounter).data("recurs", recursionCounter)
//make a new section for toggling purposed
$("#results").append("<o" + (recursionCounter) + ">")
//This code write the results to screen
$("o" + (recursionCounter)).append("<br><br> <b>Recursion " + (recursionCounter) + "</b>")
$("o" + (recursionCounter)).append("<br> Symmetric")
//toggles the recursion info
$(".removeBtn").on("click", function() {
var count = $(this).data("recurs")
$("o" + count).toggle()
})
recursionCounter = recursionCounter + 1
})
})
在 html 上使用适当的 's,如小提琴中所示。
我认为这可能是由于将单击的调用嵌套在另一个单击中?我尝试将它从“计算”点击中移出,但它根本不会切换(可能是因为范围?)但是,问题只在切换时出现。如果将 .toggle() 设置为 .hide(),则所有按钮都可以使用。如果我做单独的显示/隐藏按钮,那么它工作正常。如果我编写一个执行切换行为的 if..else 语句(使用 .is(:visible)),它也不起作用。