【问题标题】:Update document on pusher event更新推送事件的文档
【发布时间】: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


    【解决方案1】:

    您应该在这里使用= 而不是== 进行赋值:

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

    【讨论】:

    • 哇,我真的是瞎了。谢谢大佬,做到了。我想我只是需要其他人来看看它才能看到明显的问题。干杯!
    猜你喜欢
    • 2018-01-09
    • 1970-01-01
    • 2015-03-14
    • 1970-01-01
    • 1970-01-01
    • 2020-07-19
    • 2018-08-29
    • 2017-02-25
    • 1970-01-01
    相关资源
    最近更新 更多