【发布时间】:2017-11-25 17:03:08
【问题描述】:
我正在尝试更改发送新消息时打开的 converse.js 聊天框的标题。
我已将弹出式聊天窗口的 ID 存储在变量 chatbox_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 使用父 id 的变量设置嵌套的 div 标签”之类的东西产生了上述尝试。
如果有一个 conversejs 帮助函数来设置模型中的聊天标题值,并让 converse 自动管理聊天框标题文本的刷新,那就太好了。
任何帮助表示赞赏。
【问题讨论】:
-
您正在寻找
#{the chatbox}的元素chat-title(我假设您的意思是聊天框而不是字符框)。我猜没有元素chat-title,而是一个带有chat-title类的div。如果是这种情况,请使用$('#' + chatbox_id + ' .chat-title')(注意chat-title之前的点)。 -
Fathyb - 感谢您的评论。您确实是正确的... chat-title 确实是一个类。不幸的是,提议的寻址方案似乎无法访问它。可以肯定的是,chat-title 是一个离 chatbox_id 更远的 NESTED 类,所以不确定这是否会影响语法,
标签: javascript jquery converse.js