更新有关推送活动的文件

时间:2017-03-19 08:02:51

标签: javascript pusher

我是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,所以我不知道为什么事件监听器点击单元格有效,而在接收到推送通知后更新则不能。

1 个答案:

答案 0 :(得分:0)

您应该使用=代替==进行分配:

grid.rows[x].cells[y].className == 'marked';