我试图更改发送新邮件时打开的converse.js聊天框的标题。
我已经获得了存储在变量chatbox_id
中的弹出式聊天窗口的ID,并且我试图在ajax成功函数中使用jquery来取消引用该变量设置"聊天标题"文本字段,但我的语法不正确:
converse.plugins.add('name_lookup', {
initialize: function () {
var _converse = this._converse;
_converse.on('pluginsInitialized', function () {
_converse.on('chatBoxInitialized', function (chatbox) {
var title = chatbox.model.attributes.fullname;
var chatbox_id = chatbox.model.attributes.box_id;
var data;
$.ajax({
type: "POST",
url: 'lookup.php',
async: false,
data: "number=" + num_title[1],
success: function(data, status, xhr) {
chatbox.model.attributes.fullname = data;
$('#' + chatbox_id).children('chat-title').text(data);
}
});
我尝试了其他语法路线,例如:
$('#' + charbox_id + ' chat-title').text(data);
与
一起$('#' + charbox_id).children('chat-title').text(data);
但似乎都没有用。我确定我在这里遗漏了一些明显的东西,但谷歌搜索了诸如"使用jquery设置嵌套div标签,使用父ID的变量"得出了上述尝试。
如果有一个conversejs帮助函数来设置模型中的聊天标题值,并且反过来自动管理聊天框标题文本的刷新,那也会很棒。
任何帮助表示感谢。
答案 0 :(得分:0)
好的,想通了;
更改聊天框项目后,例如
chatbox.model.attributes.fullname = data;
然后你需要重新渲染
chatbox.render();
希望这会有助于前进的人。