2014-05-06 105 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 
    }); 
}