我是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,所以我不知道为什么事件监听器点击单元格有效,而在接收到推送通知后更新则不能。
答案 0 :(得分:0)
您应该使用=
代替==
进行分配:
grid.rows[x].cells[y].className == 'marked';