2013-11-03 175 views
-1

由于某种原因,这个脚本不起作用。我使用express,socket.io,jade和node.js. 下面是脚本:我不知道为什么这个脚本不会工作

var socket = io.connect(); 

function addMessage(msg) 
{ 
var currentDate = new Date(); 
var dateTime = currentDate.getDate() + "/" + 
(currentDate.getMonth() + 1) + "/" + 
currentDate.getFullYear() + "@" 
currentDate.getHours() + ":" + 
currentDate.getMinutes() + ":" + 
currentDate.getSeconds(); 
$("#historyView").append("<p>" + dateTime + " - " + msg + "</p>"); 
} 

function sentMessage() 
{ 
    if ($("#arduinoInput").val() != "") 
    { 
    socket.emit("message", $("#arduinoInput").val()); 
    addMessage($('#arduinoInput').val(), new Date().toISOString(), true); 
    $("#arduinoInput").val(""); 
    } 
    } 

socket.on("message", function(message){ 
    addMessage(message); 
}); 

$document.ready(function(){ 
$("#submit").click(function(){ 
    sentMessage(); 
}); 
}); 

,它甚至没有明确的文本框中。这里是玉页:

doctype 5 
html 
head 
    title Arduino Controller 2 
    script(src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js") 
    script(src="/socket.io/socket.io.js"); 
    script(src="script.js") 
    link(rel="stylesheet" type="text/css" href="style.css") 
body 
    div.container 
     header 
      h1 Arduino Controller 2 
     center 
      div#historyView 
      input(type="text")#arduinoInput 
      button#submit Send 

我一直在试图调试一段时间。如果有帮助,我在Mac OS X 10.9上运行它。

+4

这是什么意思*“不会工作”*?调试会话的结果是什么? –

+1

OP看起来像跳过了“调试会话”。此外hexacyanide已经回答了,也有这样一行:'currentDate.getFullYear()+“@”'缺少尾部'+'。 – Teemu

+0

当您按下发送时,它不会执行任何操作。它甚至不清除文本框,所以我知道它不是一个socket.io问题 – blockaj

回答

2

假设你没有任何其他代码,这是不正确的:

$document.ready(); 

很可能你的意思是附加一个准备处理的文件,它应该是这样的:

$(document).ready(); 
+0

这没有做任何事情。 – blockaj

+0

@blockaj,它做了一些事情,它实际上使你的代码在'document.ready'事件上工作,你以错误的方式使用它,但也可能有其他错误。 –

+1

@hexa:这不是*语法*错误。这可能是一个错误,除非OP已经完成了'var $ document = $(document);'某处。 :-) –

相关问题