更新推送事件的文档
Update document on pusher event
我是 JavaScript 和推手的新手。我正在制作带有可点击网格的网站,我想在每次点击一个单元格时发送推送器事件,以便为所有其他用户标记同一个单元格。我设法订阅了推送器频道并接收传入的消息(我现在用其他脚本发送它们),但我在收到消息后更新网格一直失败。
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,所以我不明白为什么点击单元格的事件侦听器可以工作,而在收到推送通知后更新却不能。
此处应使用 =
而不是 ==
进行赋值:
grid.rows[x].cells[y].className == 'marked';
我是 JavaScript 和推手的新手。我正在制作带有可点击网格的网站,我想在每次点击一个单元格时发送推送器事件,以便为所有其他用户标记同一个单元格。我设法订阅了推送器频道并接收传入的消息(我现在用其他脚本发送它们),但我在收到消息后更新网格一直失败。
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,所以我不明白为什么点击单元格的事件侦听器可以工作,而在收到推送通知后更新却不能。
此处应使用 =
而不是 ==
进行赋值:
grid.rows[x].cells[y].className == 'marked';