функция с параметрами в javascript / jquery не будет работать - PullRequest
0 голосов
/ 08 августа 2011

У меня есть значения в моей функции, но она говорит, что она не определена.

Это мой код:

<img onload="getFullnameDetails(263,225)" src="'+getBaseURL()+'js/check/no-image.png" rel="fullname" />

function getFullnameDetails(mainHeight,upperstyle){
setTimeout("fullnameCenter(mainHeight,upperstyle)",2000);
}

function fullnameCenter(mainHeight,upperstyle){
    var distOfMainAndUpper = 38;
    var mainHalfHeight = 131.5;
    var imageHeight = jQuery("img[rel='fullname']").height(); //there is a delay
    var imageHalfHeight = imageHeight/2;
    var fromImageTopToMainHalf = mainHalfHeight - imageHeight;
    var position = imageHalfHeight+fromImageTopToMainHalf-distOfMainAndUpper;
    jQuery(".test1").css("bottom",position+"px");
}

Здесь говорится, что mainHeight не определен.Почему это происходит.Это происходит в этой строке: setTimeout("fullnameCenter(mainHeight,upperstyle)",2000);

Заранее спасибо;)

Ответы [ 3 ]

2 голосов
/ 08 августа 2011

Попробуйте это

function getFullnameDetails(mainHeight,upperstyle){
    setTimeout(function() {fullnameCenter(mainHeight,upperstyle);},2000);
}
1 голос
/ 08 августа 2011

Когда вы устанавливаете тайм-аут, он запускается в глобальной области видимости, поэтому mainHeight и upperstyle больше не находятся в области видимости. Вам лучше использовать анонимную функцию и предоставить параметры:

setTimeout(function() {
    fullnameCenter(mainHeight,upperstyle);
}, 2000);
0 голосов
/ 08 августа 2011
  var imageHeight = jQuery("img[rel='fullname']").height(); //there is a delay

вы получаете объект изображения jquery, и он не работает! и позвольте мне рассказать вам секрет, вам не нужна задержка, попробуйте это:

var imageHeight = jQuery("img[rel='fullname']")[0].height;

вы видите, что я добавил "[0]" после селектора jquery, он вернет элемент изображения html, а не объект jquery изображения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...