如何防止我的jQuery textarea Focus事件连续触发连续的ulimted次

时间:2015-06-12 04:18:16

标签: javascript jquery javascript-events

我有类似下面的基本JavaScript jQuery代码,只在我的项目代码中调用一次,但是当我的textarea附加到事件时,通过单击我的鼠标光标来聚焦它会发出100次以上的警告!

projectTaskModal.cache.$cmtTextarea.on('focus', function() {
    alert('ON FOCUS EVENT');
});

我的目标是触发此事件一次,因为它用于简单地添加CSS类和一些其他任务,然后在我的表单发布后删除。使用AJAX请求发布表单,然后它就可以为下一个Focus操作再次触发事件做好准备。然而如上所述,每当我给它焦点时,它会发射100次以上!不好,请帮忙!

2 个答案:

答案 0 :(得分:0)

你看过.one()

了吗?

尝试

projectTaskModal.cache.$cmtTextarea.one('focus', function() {
    alert('ON FOCUS EVENT');
});

并且您可能需要在发布表单后将其附加回来。

答案 1 :(得分:0)

你会用旗帜做得更好。试试这个。

var isEventTriggered = false;
projectTaskModal.cache.$cmtTextarea.on('focus', function () {
    if (!isEventTriggered) {
        alert('ON FOCUS EVENT');
        isEventTriggered = true;
    }
});