在单击处理程序内部调用函数,但未运行
Calling a function inside click handler, not running
问题
我正在调用函数resetSelection
,它应该删除.is-active
类,并在单击提交按钮.btn--submit
后将is-inactive
类添加到曲棍球运动员列表中。
现在,.is-active
类保留在选定的播放器上,并且函数不运行?
index.html
<button class="btn btn--submit"><img src="src/img/ballot-alt.png" class="image--ballot">Submit Vote</button>
scripts.js
function resetSelection() {
$(".btn--reset").on("click", function(){
$(".picked").removeClass("is-active");
$(".picked").addClass("is-inactive");
$(".icon-checkmark").removeClass("is-completed");
$(".btn--submit").hide();
$(".btn--submit").removeClass("slideLeft");
starredGoaltenders = 0;
starredDefencemen = 0;
starredForwards = 0;
console.log(starredGoaltenders, starredDefencemen, starredForwards);
});
} resetSelection();
$(".btn--submit").on("click", function(){
console.log("Clicked");
resetSelection();
});
您的函数将单击处理程序事件绑定到btn--reset
类的元素。考虑重构resetSelection
,将逻辑包含在该事件处理程序中,但不包含事件处理程序本身:
function resetSelection() {
$(".picked").removeClass("is-active");
$(".picked").addClass("is-inactive");
$(".icon-checkmark").removeClass("is-completed");
$(".btn--submit").hide();
$(".btn--submit").removeClass("slideLeft");
starredGoaltenders = 0;
starredDefencemen = 0;
starredForwards = 0;
console.log(starredGoaltenders, starredDefencemen, starredForwards);
}
$(".btn--reset").on("click", resetSelection);
$(".btn--submit").on("click", function(){
console.log("Clicked");
resetSelection();
});
reselectSelection()
函数包含.btn--reset
的单击事件处理程序。删除该处理程序,它应该对您有效,因为您希望在单击.btn--submit
时触发重置函数。
相关文章:
- jQuery在元素的上下文中运行函数
- Promise函数在.then之后未运行函数化
- 在.append之后运行函数
- 在on.change事件之后运行函数
- 如果文本或值以字符开头,请运行函数
- 如何在节点模块中从命令行运行函数
- 在Fancybox中提交表单时运行函数
- Don'如果字段为空,则不运行函数
- Javascript:如何在页面重新加载后运行函数
- 成功ajax:如果是200状态代码,则运行函数else另一个函数
- 运行函数ifsuccess($.ajax)有200个状态代码
- JavaScript只有在最后一次被调用时才运行函数
- 在异步AJAX调用完成后,通过变量运行函数
- ng中继器打印结果0;当我运行函数时
- 谷歌扩展:如何在弹出窗口中按下按钮时在我的javascript文件中运行函数
- 获取对在 JavaScript 中运行函数的对象的引用
- 运行函数时出错
- 节点.js子进程中的运行函数
- $.getJSON 在返回数据后不会运行函数
- 如果onchange为true,如何运行函数