[英]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.