Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何防止jQuery textarea焦点事件连续多次重复触发ulimted次_Javascript_Jquery_Javascript Events - Fatal编程技术网

Javascript 如何防止jQuery textarea焦点事件连续多次重复触发ulimted次

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

我有一些类似于下面的基本JavaScript jQuery代码的东西,它在我的项目代码中只调用一次,但是当我的文本区域连接到事件时,它会发出100多次警报,通过单击鼠标光标将其聚焦

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;
    }
});