繁体   English   中英

变量未定义的Jquery socket.io

[英]variable undefined Jquery socket.io

我有一个包含以下数据的表。

描述对象1对象2对象3

我尝试通过socket.io从数据库中获取此数据,然后将数据放入一个名为Objects的字符串变量中。 字符串Objects将类似于此object1,object2,object3

如果我尝试执行警报(对象),则字符串未定义。 我的HTML代码是

<!DOCTYPE HTML>
<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  <title>SlickGrid example 1: Basic grid</title>
  <link rel="stylesheet" href="/slick.grid.css" type="text/css"/>
  <link rel="stylesheet" href="/css/smoothness/jquery-ui-1.8.16.custom.css" type="text/css"/>
  <link rel="stylesheet" href="/examples/examples.css" type="text/css"/>

</head>
<body>

<script src="/lib/jquery-1.7.min.js"></script>
<script src="/lib/jquery.event.drag-2.2.js"></script>
<script src="../lib/jquery-ui-1.8.16.custom.min.js"></script>
<script src="/socket.io/socket.io.js"></script>

<script>

  jQuery(function($){
  var socket = io.connect();

  var objects;
  var temp=[];
  socket.on('load data', function(data){
    for (var i = 0; i < data.length; i++) {
      temp = data[i];
      objects = objects + "," + temp.description;
    };
    objects = objects.substr(10, objects.length-10);
    objects=$.trim(objects);
  });

  alert(objects);   <== undefined

})

</script>
</body>
</html>

我尝试将文档准备好(请参阅下文),因为alert(objects)在socket.io之前执行,但这无济于事。

$( document ).ready(function() {
    alert(objects);
});

我应该如何解决这个问题?

感谢您的时间!!

您应该考虑在chrome调试器内部使用socket.io调试工具

$(function(){ // don't pass $ as an argument to this function
  var socket = io.connect(), // what are you connecting to?
     objects,
     temp=[];

  socket.on('load data', function(data){
    for (var i = 0; i < data.length; i++) {
      temp = data[i];
      objects = objects + "," + temp.description;
    };
    objects = objects.substr(10, objects.length-10);
    objects=$.trim(objects);

    alert(objects); // what is the value of objects here?
  });

  alert(objects); // socket.on is asynchronous so this line is will pretty much always
                  // be executed before your callback function for socket.on()
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM