2017-11-25 4 views
0

Ich versuche, den Titel einer converse.js Chat-Box zu ändern, die beim Senden einer neuen Nachricht geöffnet wird.Versucht, Conversejs Chatfenster Titeltext über Jquery zu ändern

Ich habe die ID des Popup-Chat-Fensters in einer Variablen chatbox_id gespeichert, und ich versuche, jquery innerhalb einer Ajax-Erfolgsfunktion zu verwenden, um diese Variable zu de-referenzieren und den "Chat-Titel" festzulegen Textfeld, aber die Syntax ich habe, ist nicht korrekt:

$('#' + charbox_id + ' chat-title').text(data); 

zusammen mit

$('#' + charbox_id).children('chat-title').text(data); 
:

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

ich andere syntaktische Routen wie versucht haben,

Aber keiner scheint zu funktionieren. Ich bin sicher, dass ich hier etwas offensichtliches verpasse, aber Googeln für solche Dinge wie "benutze jquery, um verschachtelte div-Tags unter Verwendung einer Variablen für die Eltern-ID zu setzen" ergab die obigen Versuche.

Wenn es eine Conversejs-Hilfsfunktion gibt, um den Chat-Titel-Wert im Modell zu setzen und umgekehrt die Aktualisierung des Chatbox-Titeltextes automatisch zu verwalten, wäre das auch großartig.

Jede Hilfe wird geschätzt.

+0

Sie suchen nach dem ** Element ** 'Chat-Titel' von '# {der Chatbox}' (ich nehme an, Sie meinten Chatbox nicht Charbox). Ich nehme an, dass es kein Element 'chat-title' gibt, sondern ein div mit der Klasse' chat-title'. Wenn dies der Fall ist, verwenden Sie '$ ('#' + chatbox_id + '.chat-title')' (beachten Sie den Punkt vor 'chat-title'). – fathyb

+0

Fathyb - Danke für Ihren Kommentar. Sie sind in der Tat richtig ... Chat-Titel ist in der Tat eine Klasse. Leider scheint das vorgeschlagene Adressierungsschema nicht darauf zuzugreifen. Um sicher zu sein, ist chat-title eine NESTED-Klasse, die weiter unten von chatbox_id liegt, also nicht sicher, ob das die Syntax überhaupt beeinflusst, – rotor155

Antwort

0

ok, fand es heraus;

Nach Änderungen an der Chatbox Artikel, wie

chatbox.model.attributes.fullname = data; 

dann müssen Sie neu rendern

chatbox.render(); 

Hoffentlich jemand geht nach vorn helfen.

Verwandte Themen