Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript &引用;[对象窗口]”;在随机定位div时以html显示_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript &引用;[对象窗口]”;在随机定位div时以html显示

Javascript &引用;[对象窗口]”;在随机定位div时以html显示,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我在这里建立一个网站,我试图在我制作的标题背景图像上产生一个非常酷的效果 我想要的是随机点出现,然后再消失(像网络ping)点缀在地图上,好像它在监视什么东西 我制作了这段代码,它几乎可以工作,但是没有生成最高值,而是打印 <h1>Top:</h1>[object Window]". Top:[对象窗口]”。 发生了一些非常奇怪的事情,我搞不清楚是什么。下面是代码: function placeimage(){ $div = $('header');

我在这里建立一个网站,我试图在我制作的标题背景图像上产生一个非常酷的效果

我想要的是随机点出现,然后再消失(像网络ping)点缀在地图上,好像它在监视什么东西

我制作了这段代码,它几乎可以工作,但是没有生成最高值,而是打印

<h1>Top:</h1>[object Window]".
Top:[对象窗口]”。
发生了一些非常奇怪的事情,我搞不清楚是什么。下面是代码:

function placeimage(){
      $div = $('header');
      $body = $('body');
      left = Math.floor(Math.random()*parseInt($div.innerWidth()));
      top = Math.floor(Math.random()*parseInt($div.outerHeight()));
      $div.append('<h1>Top:'+top+'</h1><img src="http://www.gravatar.com/avatar/e1122386990776c6c39a08e9f5fe5648?s=128&d=identicon&r=PG" alt="image" id="ping" onclick="doclick(this.id);" style="display: none; position: absolute;">');
      $img = $('#ping');
      $img.css('left',left+'px');
      $img.css('top',top+'px');
      $img.show();
      setTimeout(function(){hideimg();}, 5000);
      setTimeout(function(){placeimage();}, 3000);
}
function hideimg() {
    $img.remove();
}

placeimage();
函数placeimage(){
$div=$('header');
$body=$('body');
左=Math.floor(Math.random()*parseInt($div.innerWidth());
top=Math.floor(Math.random()*parseInt($div.outerHeight());
$div.append('Top:'+Top+'');
$img=$('ping');
$img.css('left',left+'px');
$img.css('top',top+'px');
$img.show();
setTimeout(函数(){hideimg();},5000);
setTimeout(函数(){placeimage();},3000);
}
函数hideimg(){
$img.remove();
}
placeimage();
有人能帮我吗


PS:使用的图像只是为了测试它!

因为
top
未声明为
var top
您正在尝试将window.top连接到一个字符串,该字符串将解析为对象窗口的字符串表示形式

使用
var
声明所有变量,并使用适当的串联运算符,您应该可以看到问题消失了

当您在JavaScript中声明变量而不使用
var
时,
窗口
对象获取变量的作用域。当您使用
var
在函数中声明变量时,该变量现在仅对函数可见

您绝对需要使用
var
在JavaScript中声明所有变量,否则您的程序将变得噩梦般

例如:

使用
var


$div.append('Top:',Top+'
–您确定要在那里使用逗号吗…?真的,我根本不需要打印部分,我用它来表示.innerHeight变量没有生成值。用+替换逗号修复了:)的格式谢谢你的提醒,但我恐怕我真的不明白。你能做一个,我可以复制它吗?谢谢!我现在明白了!非常感谢,你让它为我工作了!
function foo() {
    x = 5;
    setTimeout(function () {
         alert(x);
    }, 5000);
}

function bar() {
    x = 'I change window.x this includes the one in the foo function';
}

foo(); // in 5 seconds alert will read "I change window.x this includes the one in the foo function"
bar();