我正在尝试停止拖动照片时从照片中获取用户ID。我正在将Meteor与JQueryUI Draggable一起使用。渲染照片后,我将用户打印到控制台,该控制台可以正常工作并正确提供唯一的用户ID。但是,当我拖动然后停止时,它会错误地返回上次渲染的照片的用户ID。
我有这个HTML
<template name="Gallery">
<ul id="gallery-photos">
{{#each photos}}
{{> galleryPhoto}}
{{/each}}
</ul>
</template>
<template name="galleryPhoto">
<li>
<img src=""/>
</li>
</template>
和这个JS
Template.galleryPhoto.rendered = function () {
var img = this.find('img');
var user = Meteor.users.findOne({_id: this.data.user});
console.log(user); //Logs unique user ID for every photo rendered
var time = this.data.timestamp; // "1431998534049"
var path = this.data.user + "_" + time + ".jpg";
img.src = path;
$('li').draggable({
axis: "x"
},
stop: function () {
var left = $(this).position().left;
if(left > 0) {
$(this).remove();
console.log(user); //Logs the ID of the last photo created
}
});
};
有什么方法可以使正确的用户使用拖动停止功能?我敢肯定,Meteor
这样做的方法是涉及模板事件而不是jQuery回调,但是我仍然没有经验,也不知道如何去做。
当你做的$('li')
每一个新的图像渲染的时候,你重写所有的阻力监听li
你的页面上的元素。要在模板上下文中选择DOM元素,请使用this.$('li')
因为您可以自由地给li
Elements提供独特id
的,并且可以在老派上做。由你决定
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句