流星事件图的动态类

时间:2014-06-27 14:30:38

标签: jquery events meteor

我正在尝试创建一个向导包,但似乎无法在元素上设置点击事件。

我希望使用该包的人能够定义他们的下一个和前一个按钮类值,然后在点击具有这些类的元素时应用一个事件。

当我使用静态类值时,它工作正常,但如果我尝试使用我在初始化向导时定义的那些,它会失败并带有意外的标记值。我已经尝试在事件函数中将类打印到控制台,它们打印得很好。

这很好但是使用了静态类名

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();
    }
  }
});

1 个答案:

答案 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();

    }
});