2017-03-19 1 views
0

JavaScriptとプッシャーを初めて使用しました。クリック可能なグリッドのWebサイトを作っているので、あるセルがクリックされるたびにプッシャーイベントを送信したいので、他のすべてのユーザーに対して同じセルがマークされます。私はプッシャーチャンネルを購読して受信メッセージを受け取ることができましたが(今は別のスクリプトで送信しています)、メッセージを受信して​​からグリッドを更新するのに失敗しています。私は本当にJSを知らないので、プッシャー通知を受け取った後にされません更新中プッシャーイベントのドキュメントを更新

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; 
} 

はずっと私が、細胞の働きをクリックするために、なぜイベントリスナーを得ることはありません。

答えて

0

現在の割り当てに=の代わり==を使用する必要があります。

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

うわー、私は本当に盲目です。ありがとう、それはそれをしました。明白な問題を見るためには、他の人にそれを見てもらう必要があったと思います。乾杯! – Ijon

関連する問題