2014-05-06 106 views
-1

如何从先前函数中检索this从函数变量中检索数组

function bla(my_array) { 
     image_tag[this] = $('<img src="'+ random_url +'"/>'); 
     image_tag[this].appendTo('body'); 
     image_tag[this].bind('load', function() { 
      alert('this'); //instead of alerting "image_tag[4]", I'd like to alert its array "4" 
     }); 
    }); 
} 

bla(4); 
+0

我们不知道该数组是什么,这是什么,image_tag是什么,my_array是什么,或者你想要做什么? – adeneo

+0

你为什么要把它设置为4? – TurboHz

+0

对于混淆,我很抱歉,我没有包含整个代码,因为我认为它会让事情更加混乱。 – Ming

回答

0

使用$ .proxy结合以前的“本”,以新的功能:

image_tag[this].load($.proxy(function() { 
    alert(this); 
},this)); 
+0

工作!我看你已经改变了bind('load''只是'load',我可以问你有什么不同吗? – Ming

+0

.load只是.bind(“load”)的简写。很少(比如.click,.keyup等)。 –

0

我不认为你的示例代码的工作方式,你认为它的作用:http://jsfiddle.net/eSwf7/

但假设在你的实际代码中,一切正常,你只是想从外部函数中引用this,你可以这样做:

function bla(my_array) { 
    var that = this; 
    image_tag[this].bind('load', function() { 
     alert(that); //instead of alerting "image_tag[4], I'd like to alert 4 
    }); 
}