簡體   English   中英

兩個相同的按鍵事件; 只有一件作品

[英]Two identical keydown events; only one works

我正在嘗試使用Meter構建一個webapp。 我在client.js中有這個:

Template.messages.helpers({
    messages: function() {
        return Messages.find({}, { sort: { time: -1}});
    }

})

Template.chats.helpers({
    chats: function() {
        return Chats.find({}, { sort: { time: -1}});
    }

})

Template.input.events({
    "keydown input#message" : function (event) {
      if (event.which == 13) { // 13 is the enter key event
        if (Meteor.user())
          var name = Meteor.user().username;
        else
          var name = 'Anonymous';
        var message = document.getElementById('message');

        if (message.value != '') {
          Messages.insert({
            name: name,
            message: message.value,
            time: Date.now(),
          });

          document.getElementById('message').value = '';
          message.value = '';
        }
      }
    }
});

Template.inputchat.events({
    "keydown inputchat#chatid" : function (event) {
        if (event.which == 13) { // 13 is the enter key event
          if (Meteor.user())
            var name = Meteor.user().username;
          else
            var name = 'Anonymous';
          var chat = document.getElementById('chatid');

          if (chat.value != '') {
            Chats.insert({
              name: name,
              title: chat.value,
              time: Date.now(),
            });

            document.getElementById('chatid').value = '';
            chat.value = '';
          }
        }
    }
});

在我的html文件中:

<template name="Index">
<body>
  {{> input }}
  {{> messages }}
  {{> inputchat }}
  {{> chats }}
</body>
</template>
<template name="input">
  <p>Message: <input type="text" id="message"></p>
</template>

<template name="inputchat">
  <p>Chat name: <input type="text" id="chatid"></p>
</template>

<template name="messages">
  {{#each messages}}
    <strong>{{name}}:</strong> {{message}}<br>
  {{/each}}
</template>

<template name="chats">
  {{#each chats}}
    <strong>{{name}}:</strong> {{chat}}<br>
  {{/each}}
</template>

最后,在models.js中:

Messages = new Mongo.Collection('messages');
Chats = new Mongo.Collection('chats');

當我輸入內容並在{{> input}}上按Enter鍵時,一切正常。 該消息將添加到集合和模板中,並且輸入框為空。

在inputchat上鍵入並單擊Enter時,我一直在尋找相同的東西。 但是,什么也沒有發生。 謝謝。

嘗試第一個解決方案

 Template.input.events({
        "keydown #message" : function (event) {
       }
     })

使用IDS

第二解決方案

還可以將"keydown inpuchat"替換為"keydown input#chatid

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM