Как скопировать функцию, чтобы я мог использовать «this» в функции onLoad.Ака это. Скачать? - PullRequest
0 голосов
/ 22 августа 2011

Когда объект загружается, я хочу, чтобы он перемещался по странице.Движение не самая сложная часть.Я использую этот код (более или менее) для этого.

var x = 5; //Starting Location - left
var y = 5; //Starting Location - top
var dest_x = 300;  //Ending Location - left
var dest_y = 300;  //Ending Location - top
var interval = 10; //Move 10px every initialization

function moveImage() {
    //Keep on moving the image till the target is achieved
    if(x<dest_x) x = x + interval; 
    if(y<dest_y) y = y + interval;

    //Move the image to the new location
    document.getElementById("ufo").style.top  = y+'px';
    document.getElementById("ufo").style.left = x+'px';

    if ((x+interval < dest_x) && (y+interval < dest_y)) {
        //Keep on calling this function every 100 microsecond 
        //  till the target location is reached
        window.setTimeout('moveImage()',100);
    }

Дело в том, что я не хочу получать свой элемент по идентификатору, вместо этого я хочу использовать ключевое слово "this".

Я прочитал эту весьма полезную статью: http://www.quirksmode.org/js/this.html и узнал, что мне нужно скопировать функцию, а не ссылаться на нее.

Они сказали, что синтаксиссделать это было element.onLoad = "" вместо onload = "", но я до сих пор не понимаю, что написать для element .

Любые предложения будут большой помощью.Спасибо

1 Ответ

1 голос
/ 22 августа 2011

Напишите что-то вроде этого:

var image = document.createElement('img');
image.onload = moveImage;
image.src = 'test.jpg';

Тогда this in moveImage() будет вашим загруженным img

...