(流星)'点击'事件没有获得新的价值

时间:2016-08-05 08:53:01

标签: meteor

我遇到了这种情况: 我在html中创建了一个记录列表:

{{#each data}}
<i class="fa fa-fw fa-pencil-square-o btn-edit-ota" data-hotel-id="1"></i>
<i class="fa fa-fw fa-pencil-square-o btn-edit-ota" data-hotel-id="2"></i>
...
<i class="fa fa-fw fa-pencil-square-o btn-edit-ota" data-hotel-id="10"></i>
{{/each}}

我希望每次点击每个项目时,它都会写下&#34; hotel-id&#34;控制台日志中的该项目;所以,在js我创建:

'click .btn-edit-ota': function (event, template) {
        var hid = $(event.target).data('hotel-id');
        console.log(hid);
}

它工作正常,它显示&#39; 1&#39;在我点击第1个等等的控制台日志中&#39; 2&#39;第二,...

在js中,我有一个自动运行:

Template.myTemp.onRendered(function () {
    var self = this;
    self.autorun(function (computation) {
         ... //generate my list here...
    }
});

所以每当我更改任何复选框或过滤器或当前页面时,自动运行都会运行,我会得到一个新列表。

这里的问题是当autorun运行时,我得到一个新列表。 例如:现在是:

<i class="fa fa-fw fa-pencil-square-o btn-edit-ota" data-hotel-id="11"></i>
<i class="fa fa-fw fa-pencil-square-o btn-edit-ota" data-hotel-id="12"></i>
...
<i class="fa fa-fw fa-pencil-square-o btn-edit-ota" data-hotel-id="20"></i>

我点击第一个,它显示&#39; 1&#39;在控制台日志中。 :((

它应该显示&#39; 11&#39;。因为HTML现在是: ... data-hotel-id =&#34; 11&#34;&gt; ,而不是 ... data-hotel-id =&#34; 1&#34;&gt;

我认为必须使用旧的数据/ html。 发生了一些奇怪的事情&#39;点击&#39;事件

$(event.target).data('hotel-id');

它没有获得新ID。

任何人都可以告诉我为什么会这样? 非常感谢。

0 个答案:

没有答案