【发布时间】:2017-01-25 03:15:29
【问题描述】:
现在我是 Javascript/Jquery 的初学者。 我想创建一个动态代码,以便在网站出现一些新功能时它可以工作,而无需编辑代码。
现在我刚刚在一些帖子中阅读了如何使用变量作为 id 的标识符,但它对我不起作用。下面是一个例子:
var category;
$('#mainCategory').change(function (event) {
checkboxID = event.target.id;
category="category"+checkboxID;
...some code...
});
$("#"+category).change(function (event) {
$('#category'+checkboxID+' :input').attr('class','' );
console.log("var: "+category);
});
因此,当我使用整个表达式而不是使用变量时,函数 mainCategory 总是在另一个函数之前运行,并且类别在第二个函数中写入正确。 我希望你能帮助我。
html代码部分:
<form method="post" action="../php/saveTraining.php">
<section id="mainCategory" class="hidden">
<label><input type="checkbox" id="Krafttraining">Krafttraining</label>
<label><input type="checkbox" id="Joggen">Joggen</label>
</section>
<section id="categoryKrafttraining" class="hidden">
<label><input type="checkbox">Kurzhantel</label>
<label><input type="checkbox">Bankdrücken</label>
<label class="hidden"><input type="number" id="saetze">Sätze</label>
<label class="hidden"><input type="number" id="wiederholungen">Wiederholungen</label>
</section>
<input type="hidden" id="saveTraining" name="sent" value="save" class="hidden"/>
</form>
因此,实际发生的是,当检查MainCategory的复选框时,将出现第二部分的复选框。
但是当我选中第二部分的复选框时,没有任何反应。
【问题讨论】:
-
忘记写 var checkboxID;作为全球
-
除非您在我们看不到的地方手动调用
mainCategory更改函数 - 创建处理程序时category未定义。 -
您将
checkboxID添加到“类别”以使category变量...然后在调用attr()时将其再次添加到处理程序中。即使修复了其余代码,除非您的 HTML 比我们想象的要怪异得多,否则它也不会起作用。你能展示你正在使用的 HTML 吗? -
最好使用一个你关心的所有元素都会给出的类。然后,您可以使用事件委托来动态添加该类的成员。见stackoverflow.com/questions/203198/…
-
显示一些与此相关的html
标签: javascript jquery html web