Ну, в то время как вы думаете, передавая свой объявленный массив анонимной функции на самом деле вы определяя новую локальную переменную img
с этим кодом:
.each(function(img){})
, что только можно увидеть в этой новой анонимной функции
Поскольку эта функция обратного вызова, который должен иметь входные параметры, которые будут переданы по each()
функции: jQuery.each(array, callback)
Теперь то, что вы сделали, вы определили ваш массив img
в рамках функции:
$(window).on('load', function(){..});
А затем определить еще одну переменную в качестве входного параметра, который будет использоваться в этой области видимости функции:
$(".gallery_img").each(function(img){..});
Я думаю, вы пытался передать эту переменную в эту функцию, но это не является необходимым, так как вы уже объявили он находится в более широком диапазоне, и эта переменная уже доступна в области функций.
Truth about javascript variable scopes
Когда вы определили эту переменную в качестве параметра функции обратного вызова, вы получаете вашу новую локальную переменную img
, которая получает индекс матча в качестве значения и ваш массив img
становятся недоступны внутри этой функции.
Так что вы должны были сделать на самом деле:
$(window).on('load', function(){
var x = 0;
var img = [];
$(".gallery_img").each(function(ind, val){
var image = new Image();
image.src = $(this).attr("src");
// Unnecessary, we already have index - ind, unless you use some filtering.
// So you could get rid of x variable and use ind instead, like img[ind] = image.src
x = x + 1; //<- x becomes 1
img[x] = image.src; //<- img[0] is undefined as img[1] is where the index began.
console.log(img);
console.log($(this).attr("src"));
Кроме того, я советую вам, чтобы привыкнуть к jsfiddle для установки вашего образца кода, который поможет вам отлаживать код и нам, чтобы помочь с вашей фактической выборки ,
Что вы получаете, когда записываете «изображение» и «image.src» ..? Надеюсь, это «неопределенный» ...? –
@Nomesh DeSilva для изображения, которое я получаю: вместо этого для image.src: "file: /// X: /portfolio/lavori/car_wip.png" , который совпадает с $ (this) .attr ("SRC"); Конечно – Zeus
Куда девалась функция? Вам не хватает последней половины. –