我正在尝试创建一个向导包,但似乎无法在元素上设置点击事件。
我希望使用该包的人能够定义他们的下一个和前一个按钮类值,然后在点击具有这些类的元素时应用一个事件。
当我使用静态类值时,它工作正常,但如果我尝试使用我在初始化向导时定义的那些,它会失败并带有意外的标记值。我已经尝试在事件函数中将类打印到控制台,它们打印得很好。
这很好但是使用了静态类名
Template.wizard.events({
"click .btn-prev": function (event) {
event.preventDefault();
this.wizard.previous();
}
});
这不会导致unexpected token +
错误
Template.wizard.events({
"click ." + this.wizard.prevClass: function (event) {
event.preventDefault();
this.wizard.prev();
}
});
然后我尝试通过做这样的事情绕过它,但我的if语句似乎总是返回false。
Template.wizard.events({
'click': function (event) {
event.preventDefault();
if ($(this).hasClass(this.wizard.nextClass)){
this.wizard.next();
}
}
});
答案 0 :(得分:1)
你的$(this)
应该是什么?您正处于点击回调中:)
如果你想在点击后找到一些东西,你应该尝试使用事件当前目标(不是目标,它们可能不同),或点击的第二个参数(模板):
Template.wizard.events({
'click': function (e, tmpl) {
event.preventDefault();
console.log(e.currentTarget);
console.log(tmpl);
console.log(tmpl.find(this.wizard.nextClass);
if( e.currentTarget.className === this.wizard.nextClass )
this.wizard.next();
}
});