2014-09-19 70 views
0

我正在使用节点和套接字IO在一个浏览器中设置点击事件,并在另一个浏览器中触发动画。我很难让这个工作。例如,点击一个浏览器中的按钮将隐藏另一个框中的一个框。我到目前为止的代码是:使用套接字IO单击事件

客户端:

function hideBox(data) { 
     $('.box').hide(); 
    }; 

    $('.btn').on('click', function(event) { 
     socket.emit('hideBtn', {id: event.target}); 
    }); 

    socket.on('hideBtn', function(data) { 
     $(data.id).hideBox; 
    }); 

服务器端

socket.on('hideBtn', function(data) { 
    socket.broadcast.emit('hideBtn', data); 
}); 

任何帮助将不胜感激。谢谢。

+0

错误是什么? – Ravi 2014-09-19 10:31:20

+0

嗨Ravi。没有错,只是没有任何反应。我知道这两个浏览器都已连接,因为我正在为每个套接字连接发送警报。 – user1391152 2014-09-19 11:26:57

+0

''.on('hideBtn',function(){})''console.log('something')'并检查控制台中的问题。 – Ravi 2014-09-19 12:13:40

回答

0

好的,所以经过大量的来回之后,答案实际上只是简化了代码。无需指定event.target等,只需简单地发出并监听事件即可。

代码客户端,index.html的:

$('.btn').on('click', function() { 
    socket.emit('hideBoxRequest'); 
}); 

代码服务器端:

socket.on('hideBoxRequest', function() { 
    socket.broadcast.emit('hideBox'); 
}); 

最终代码客户端,我的其他HTML文件:

socket.on('hideBox', function() { 
    $('.testBox').fadeOut(); 
}); 

所以基本上在index.html中点击btw会向服务器发出'hideBoxRequest'。然后服务器选择它并向所有连接到服务器的客户端发送'hideBox'。

0
socket.on('hideBtn', function(data) { 
     $(data.id).hideBox; 
    }); 

hideBox是一个功能吧?也许这是由于“()”被遗忘的原因:-)