0

我正在尝试将独立表情符号选择器中的表情符号值添加到文本输入中(与输入本身具有表情符号选择器的效果相同)。我尝试从 emojibtn_click 事件中获取值,但它为返回的值返回 undefined 。如何通过独立的表情符号选择器选择表情符号并将值传输到文本输入字段,结果与使用普通输入相同?

新的.html.erb

<div style="overflow: hidden;">
  <%= form.text_field :content, placeholder: 'Type your message....', id: "conversation_comment_content_#{@conversation.id}", style: 'width: 100% !important; border-radius: 0 !important; height: 36px;' %>
</div>

javascript

  <script>
    $(document).ready(function() {

        $('#trigger').emojioneArea({
            standalone: true,
            autocomplete: false,
            events: {
               emojibtn_click: function (button, event) {
                   console.log('event:emojibtn.click, emoji=' + button.children().data("name"))
               },
                change: function(editor, event) {
                   console.log('event:change');
                }
            }
        })
    });

  </script>
4

1 回答 1

0

我将 emojioneArea 组件变成了一个可重用的对象,然后捕获了它的值。

$(document).ready(function() {
      var emojiStandAlone =  $('#trigger').emojioneArea({
            standalone: true,
            autocomplete: false,
            events: {
            }
        })

        const emojionearea = emojiStandAlone[0].emojioneArea

        emojionearea.on('picker.hide', function() {
            const emoji = emojionearea.getText()
            emojionearea.setText('')
            if(emoji) {
                $("#conversation_comment_content_<%= @conversation.id %>").val(function(i, val) {
                    return val + `${emoji}`;
                });
            }
        });

    });
于 2021-01-24T05:14:04.033 回答