【发布时间】:2016-01-09 18:58:36
【问题描述】:
我目前正在使用 socket.io、ARI_Client(Node.js) 和 JQuery 开发一个应用程序。
目前我有一个小问题,我可以根据数组中的内容实时更改值,当我向数组中添加内容时一切正常........但不是那么多删除它们时,我必须刷新页面才能正常工作。
当我在数组中只有一个值并拼接相同的元素时,它可以工作,除此之外,这些值在网页上交换位置,当我刷新原始所需的效果时。
更新 sip 功能。
如何将数据传回客户端。
function updateSip() {
console.log("Value: " + test);
io.sockets.emit('sip', chanArr);
}
拼接数组并调用函数。
function stasisEnd(event, channel) {
console.log(util.format(
'Channel %s just left our application', channel.name));
console.log(channel.name);
var index = chanArr.indexOf(channel.name);
chanArr.splice(index, 1);
updateSip();
}
附加到网页。
Query(function ($) {
var socket = io.connect();
var $sip = $('#sip');
socket.on('sip', function (data) {
var sip = '';
$( "#exe" ).remove();
for (i = 0; i < data.length; i++) {
sip += data[i];
if(sip){
$sip.append('<tr id="exe">\
<td>'+ sip +'</td>\
<td><btton class="btn btn-default mute" id="mute" type="submit">Mute</button></td>\
<td><button class="btn btn-default kick" id="kck" data-toggle="modal" data-target="#myModal" type="submit">Kick</button></td>\
</tr>');
}
else{
$sip.append('Currently no extensions');
}
sip = '';
}
});
为了更清楚地了解发生了什么,我将链接屏幕截图。
数组中的单个值,如果我删除/结束调用,它将实时从数组和网页中拼接出来。
如果数组中有两个以上的值,则您在下面看到的两个值会交换,仅此而已,但是当我刷新页面时,无法再看到从数组中删除的元素。
我需要它随时实时删除,我不确定为什么它只适用于单个值而不是超过一个。
【问题讨论】:
-
$( "#exe" ).remove();你知道即使有很多元素,这也只会删除一个元素,对吗?您需要使用class而不是id -
哦,好吧....这很尴尬,这确实是问题所在,@guramidev 你想发布一个答案,这样你就可以得到它的功劳。
-
不,没关系,很高兴为您提供帮助
标签: javascript jquery arrays node.js socket.io