【发布时间】:2017-03-19 08:02:50
【问题描述】:
我是 JavaScript 和 pusher 的新手。我正在制作带有可点击网格的网站,我想在每次点击一个单元格时发送推送事件,因此将为所有其他用户标记同一个单元格。我设法订阅了推送频道并接收传入的消息(我现在正在使用其他脚本发送它们),但在收到消息后我一直无法更新网格。
var pusher = new Pusher('xxxxxxxxxxxxxxxxx', {
cluster: 'eu',
encrypted: true
});
var channel = pusher.subscribe('app');
var grid = clickableGrid({{y}},{{x}},function(el,row,col,i){
el.className = 'clicked';
});
channel.bind('cell_marked', function(data) {
var x = data['message'][0];
var y = data['message'][1];
grid.rows[x].cells[y].className == 'marked';
});
document.body.appendChild(grid);
function clickableGrid(rows, cols, callback){
var i = 0;
var grid = document.createElement('table');
grid.className = 'grid';
for (var r=0;r<rows;++r){
var tr = grid.appendChild(document.createElement('tr'));
for (var c=0;c<cols;++c){
var cell = tr.appendChild(document.createElement('td'));
cell.innerHTML = ++i;
cell.addEventListener('click',(function(el,r,c,i){
return function(){
callback(el,r,c,i);
}
})(cell,r,c,i),false);
}
}
return grid;
}
由于我不太了解 JS,我不明白为什么单击单元格的事件监听器有效,而在收到推送通知后更新则无效。
【问题讨论】:
标签: javascript pusher