javascript - "[object Window]"在随机定位 div 时显示在 html 中

标签 javascript jquery html css

<分区>

我在这里建站http://msdhosting.co.uk/wp我正在尝试对我制作的页眉背景图像产生非常酷的效果。

我想要的是点缀在 map 周围的随机点出现然后再次消失(如网络 ping),就好像它在监视什么......

我已经编写了这段代码,它几乎可以工作,但是没有生成最高值,而是打印出来。

<h1>Top:</h1>[object Window]".

发生了一些非常奇怪的事情,我无法弄清楚它是什么。这是代码:

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();

谁能帮我解决这个问题?

PS:所用图片仅供测试!

最佳答案

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

使用 var 声明所有变量并使用正确的串联运算符,您应该会看到问题消失了。

当您在没有 var 的情况下在 JavaScript 中声明变量时,window 对象会获得变量的作用域。当您使用 var 在函数内声明变量时,该变量现在仅对该函数可见。

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

示例 http://jsfiddle.net/rQw9y/ :

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();

这个问题很容易通过在两个函数中声明 xvar

来解决

http://jsfiddle.net/rQw9y/2/

关于javascript - "[object Window]"在随机定位 div 时显示在 html 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22700618/

相关文章:

javascript - 有没有办法从 JavaScript 创建一个反向(即从右到左)选择?

javascript - 为所有子项添加事件监听器

javascript - 与可拖动插件一起使用时,Tablesorter 会出现问题。

javascript - 如何使用 Paho MQTT javascript 客户端连接 IBM Watson IOT?

javascript - 修改使脚本交叉淡入淡出而不是淡出然后淡入

javascript - 使用 jQuery 获取给定目录中的文件名

javascript - 值为 &lt;input type ="text"> 的单选按钮

javascript - 当select有值时在select by text中选择值?

javascript - 什么是计算实际(网页)页面加载时间的可靠方法

jquery - 使用 jQuery 模拟单击​​选择元素