2014-09-19 61 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是一個功能吧?也許這是由於「()」被遺忘的原因:-)