簡體   English   中英

點擊鼠標即可調用功能

[英]Call function with mouse click

我有一個文本區域。 每次輸入回車鍵時,光標移動到文本區域的下一行並調用一個功能。 此功能發布/更新數據庫中的條目。 我想要它,以便如果我編輯一行,然后單擊鼠標繼續在另一行鍵入該功能再次調用鼠標單擊

  $("#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) {

我知道上面的內容並不正確,但我想說明我的目標

您可以使用jQuery的.on方法,如下所示:

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

它將第一個參數作為具有不同事件的字符串,這意味着您可以一次監聽多個事件。 第二個是回調函數,您可以在其中跟蹤觸發的事件。 Nb:點擊和keydown之間的事件不同。 你可以通過放置console.log(e);仔細看看console.log(e); 在你的回調中

您需要附加另一個事件監聽器。 單擊鼠標時不會觸發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個事件和常用函數來處理它,而不是放置條件。 敵人示例:

    $("#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();
}

我不知道jQuery,但使用vanilla 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> 

暫無
暫無

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

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