Javascript 如何防止jQuery textarea焦点事件连续多次重复触发ulimted次
我有一些类似于下面的基本JavaScript jQuery代码的东西,它在我的项目代码中只调用一次,但是当我的文本区域连接到事件时,它会发出100多次警报,通过单击鼠标光标将其聚焦Javascript 如何防止jQuery textarea焦点事件连续多次重复触发ulimted次,javascript,jquery,javascript-events,Javascript,Jquery,Javascript Events,我有一些类似于下面的基本JavaScript jQuery代码的东西,它在我的项目代码中只调用一次,但是当我的文本区域连接到事件时,它会发出100多次警报,通过单击鼠标光标将其聚焦 projectTaskModal.cache.$cmtTextarea.on('focus', function() { alert('ON FOCUS EVENT'); }); 我的目标是触发此事件1次,因为它用于简单地添加一个CSS类和一些其他任务,然后在发布表单后将这些任务删除。一个表单发布了一个AJ
projectTaskModal.cache.$cmtTextarea.on('focus', function() {
alert('ON FOCUS EVENT');
});
我的目标是触发此事件1次,因为它用于简单地添加一个CSS类和一些其他任务,然后在发布表单后将这些任务删除。一个表单发布了一个AJAX请求,然后它就准备好了下一个Focus
操作来再次触发事件。然而,正如前面提到的,每次我给它焦点时,它都会发射100多次以上!不好,请帮忙 你看过吗
试一试
在表单发布后,您可能需要将其重新附加。您最好使用一个标志。试试这个
var isEventTriggered = false;
projectTaskModal.cache.$cmtTextarea.on('focus', function () {
if (!isEventTriggered) {
alert('ON FOCUS EVENT');
isEventTriggered = true;
}
});
这实际上是一个好主意,因为它在我的应用程序的其他一些方面也帮助了我!我有单独的函数来扩展和折叠表单,因为它在每种情况下执行大约5个操作,并且从几个位置调用。因此,在我的应用程序
projecttaskmodel.isTaskCommentFormExpanded
中将标志var作为变量,开始时如您所述为false,然后为true/false;在我提到的2个函数中,s值非常有效,并且还解决了一个问题,即如果模式窗口在关闭之前关闭,它将保持打开状态
var isEventTriggered = false;
projectTaskModal.cache.$cmtTextarea.on('focus', function () {
if (!isEventTriggered) {
alert('ON FOCUS EVENT');
isEventTriggered = true;
}
});