2017-11-25 47 views
0

我試圖更改發送新消息時打開的converse.js聊天框的標題。試圖通過jquery更改conversejs聊天窗口標題文本

我已經將彈出式聊天窗口的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); 

但似乎沒有工作。我確定我在這裏忽略了一些明顯的東西,但是在Google上搜索諸如「使用jquery爲父ID使用變量設置嵌套的div標記」產生了上述嘗試。

如果有一個conversejs幫助函數來設置模型中的聊天標題值,並且交談會自動管理聊天室標題文本的刷新,那也會很棒。

任何幫助表示讚賞。

+0

您正在尋找'#{chatbox} **的**元素**'聊天標題'(我假設您的意思是chatbox不是charbox)。我想沒有元素'chat-title',而是'chat-title'類的div。如果是這種情況,請使用'$('#'+ chatbox_id +'.chat-title')'(注意'chat-title'之前的點)。 – fathyb

+0

Fathyb - 感謝您的評論。你確實是對的......聊天標題確實是一個類。不幸的是,擬議的尋址方案似乎無法訪問它。可以肯定的是,chat-title是一個比chatbox_id更遠的NESTED類,所以不確定這是否會影響語法, – rotor155

回答

0

好的,算出來了;

在更改客艙項目後,如

chatbox.model.attributes.fullname = data; 

,那麼你需要重新渲染

chatbox.render(); 

希望這會幫助別人前進。