$(this)和scope - 传递特定元素

时间:2014-03-06 17:43:04

标签: javascript jquery

我有各种各样的.img-drop-zones,一旦读取文件,我希望将它显示在它所放置的特定放置区域的顶部,但我该如何获得它? $(this)由于范围不起作用,我该如何通过?

 $('.img-drop-zone').on('drop', function(e){

        var files = e.originalEvent.dataTransfer.files;

        $.each(files, function(index, file){

            p.file.read(file, function(content) {
                //how can I get the img-drop zone here?

            });

        }) 


    });

2 个答案:

答案 0 :(得分:5)

只需在外部作用域中声明一个可以在$.each闭包中引用的附加变量:

var $this = $(this);

$.each(..., function() {
    // use $this here to refer to the img-drop-zone
});

当将对象引用到不是jQuery对象的对象时,使用selfthat更为常见。

答案 1 :(得分:0)

$(这)就是你需要的

 $('.img-drop-zone').on('drop', function(e){
        var files = e.originalEvent.dataTransfer.files;
        var dropJone = $(this);
        $.each(files, function(index, file){
            p.file.read(file, function(content) {
                //how can I get the img-drop zone here?
                //use dropJone here
          });
        }) 
});