鼠标点击调用功能

时间:2019-06-06 12:22:37

标签: javascript

我有一个文本区域。每次输入回车键,光标就会移动到文本区域的下一行,并调用一个函数。此功能发布/更新数据库中的条目。我想要这样,如果我编辑一行,然后单击鼠标以继续在另一行键入内容,则再次单击鼠标会调用该功能

  $("#textarea").keydown(function (e) {

 if (e.keyCode == 13) {
  document.addEventListener('keydown', newLine(this, "\n"));
  console.log("code added");
    e.preventDefault();
     stream();

是否可以将我的行更改为这样,并且在按Enter键或鼠标(在文本区域中的任意位置)时调用该方法?

  if (e.keyCode == 13 || mouse.click) {

我知道上面的说法是不正确的,但想说明一下我的追求

4 个答案:

答案 0 :(得分:5)

您可以像这样使用jQuery的.on方法:

$("#textarea").on('click keydown', (e) => {
    if(e.keyCode && e.keyCode == 13 || e.type == "click" ){
        // Do stuff
    }
});

它将第一个参数作为带有不同事件的字符串,这意味着您可以一次收听多个事件。第二个是回调函数,您可以在其中跟踪触发的事件。 Nb:单击和击键之间的事件不同。您可以通过在回调中添加console.log(e);来仔细查看

答案 1 :(得分:1)

您需要附加另一个事件侦听器。单击鼠标不会触发keydown事件。您还需要添加一个$(...).click(function ...)。例如...

function myFunction (e) {
  document.addEventListener('keydown', newLine(this, "\n"));
  console.log("code added");
  stream();
}

$("#textarea").keydown(function() {
  if (e.keyCode == 13) {
    myFunction()
    e.preventDefault();
  }
});

$('#textarea').click(myFunction)

答案 2 :(得分:1)

代替创建条件,您可以创建2个事件和一个通用函数来处理该事件。 敌人的例子:

    $("#textarea").keydown(function (e) {
 if (e.keyCode == 13) {
  logic1()



$("#textarea").click(function() { logic1();});

    function logic1(){
    document.addEventListener('keydown', newLine(this, "\n"));
  console.log("code added");
    e.preventDefault();
     stream();
}

答案 3 :(得分:1)

我不了解jQuery,但是使用香草JS,您可以执行以下操作:

const textarea = document.querySelector('textarea');

const foo = event => {
  const output = document.querySelector('output');
  output.textContent = event.type;
}

textarea.addEventListener('click', foo, false);
textarea.addEventListener('keypress', foo, false);
<textarea></textarea>
<output></output>