Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/411.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用jQuery拖动后从模板获取信息_Javascript_Jquery_Meteor_Draggable - Fatal编程技术网

Javascript 使用jQuery拖动后从模板获取信息

Javascript 使用jQuery拖动后从模板获取信息,javascript,jquery,meteor,draggable,Javascript,Jquery,Meteor,Draggable,我试图在停止拖动照片时从照片中获取用户ID。我正在使用流星与JQueryUI Draggable。在渲染照片时,我将用户打印到控制台,控制台工作正常,并正确地给出唯一的用户ID。但是,当我拖动并停止时,它会错误地返回上次渲染照片的用户ID 我有这个html <template name="Gallery"> <ul id="gallery-photos"> {{#each photos}} {{> galleryPho

我试图在停止拖动照片时从照片中获取用户ID。我正在使用流星与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>
有没有办法让正确的用户在拖动停止?我确信Meteor实现这一点的方法是涉及模板事件,而不是jQuery回调,但我仍然缺乏经验,也不知道如何进行。

当您执行
$('li')
时,每次呈现新图像时,您都会覆盖页面上所有
li
元素的拖动侦听器。要在模板上下文中选择DOM元素,请使用
this.$('li')


因为你可以自由地赋予你的
li
元素独特的
id
s,并且老一套地去做。这取决于你

请看,哪里的共识是“不,他们不应该”!好吧,我只是习惯了标准的标题搜索引擎优化。从现在起,我将继续关注这一点。谢谢
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
        }
    }); 
};