Javascript 如何阻止onfocus事件触发?

Javascript 如何阻止onfocus事件触发?,javascript,jquery,Javascript,Jquery,我想捕捉chatbox输入字段onfocus事件,以知道用户已阅读消息。当onfocus事件被触发时,我将向服务器发送ajax,以显示已看到的消息 无论我尝试什么方法,我总是不断地关注事件 <input type="text" name="content<?php echo $id; ?>" placeholder="Type message..." onfocus="chatboxInputInFocus(<?php echo $id; ?>)"/> 我得

我想捕捉chatbox输入字段onfocus事件,以知道用户已阅读消息。当onfocus事件被触发时,我将向服务器发送ajax,以显示已看到的消息

无论我尝试什么方法,我总是不断地关注事件

<input type="text" name="content<?php echo $id; ?>" placeholder="Type message..." onfocus="chatboxInputInFocus(<?php echo $id; ?>)"/>
我得到的是持续的警觉。如何只抓住输入成为焦点的时刻?JS或Jquery。

不要使用
alert()
进行调试,因为它会触发您的焦点。
改用
console.log()
,您的代码就可以工作了

函数chatboxInputFocus(交换id){
console.log(交换id);
返回;
}
不要使用
alert()
进行调试,因为它会触发您的焦点。
改用
console.log()
,您的代码就可以工作了

函数chatboxInputFocus(交换id){
console.log(交换id);
返回;
}

您可以使用方便的
.one
方法
jQuery

$(document).ready(function(){
    $("input").one('focus', function(){
        alert('Just once!');
    });
});

您可以使用方便的
.one
方法
jQuery

$(document).ready(function(){
    $("input").one('focus', function(){
        alert('Just once!');
    });
});

此处需要在onfocus函数参数中传递事件对象,并执行默认操作<代码>功能ChatBoxInputFocus(交换id){ 警报(交换标识); ev.preventDefault(); 返回; } onfocus=“ChatboxInputFocus(事件,id)”
`此处需要在onfocus函数参数中传递事件对象,并执行默认操作<代码>功能ChatBoxInputFocus(交换id){ 警报(交换标识); ev.preventDefault(); 返回; } onfocus=“ChatboxInputFocus(事件,id)”
`

您是否愿意只使用jquery或vanilla js?您是否愿意只使用jquery或vanilla js?我刚刚输入了相同的答案。警报的问题是,在它弹出后,焦点被带到该警报,在用户关闭它后,焦点被带回到输入字段。因此,无限循环。我只是键入了相同的答案。以下是使用
alert()
进行调试的问题:在弹出警报后,焦点将被带到它,一旦用户关闭它,焦点将被带回到输入字段。当他试图检测onfocus事件时,他将得到无限循环。(修正了打字错误)我只是在输入同样的答案。警报的问题是,在它弹出后,焦点被带到该警报,在用户关闭它后,焦点被带回到输入字段。因此,无限循环。我只是键入了相同的答案。以下是使用
alert()
进行调试的问题:在弹出警报后,焦点将被带到它,一旦用户关闭它,焦点将被带回到输入字段。当他试图检测onfocus事件时,他将得到无限循环。(修正了拼写错误)这个功能很方便,但这并不是他想要的正确方法。人们应该避免调试
alert()
,但这不是他的问题。事件不断发生。使用控制台只会掩盖他的实际问题,即使这是正确的调试方式。但他的事件会不断触发,因为他使用的是
alert()
,如果他不使用alert,他就不会有这个问题。。。看看我在第二个答案下的评论。这个功能很方便,但这并不是他想要的正确方法。人们应该避免调试
alert()
,但这不是他的问题。事件不断发生。使用控制台只会掩盖他的实际问题,即使这是正确的调试方式。但他的事件会不断触发,因为他使用的是
alert()
,如果他不使用alert,他就不会有这个问题。。。请看我在第二个答案下的评论。