绑定到模糊事件但希望在某些情况下阻止它发射

时间:2017-11-06 15:40:38

标签: javascript jquery onblur

我有一个绑定了 blur 事件的对象。这允许我通过ajax将对象的内容写入数据库并保存编辑。

editableText.bind('blur',function(e){
   blurFunction();
});

但是我希望能够通过按下退出来退出编辑过程。所以我检测到逃生按键工作,没关系。

editableText.on("keyup", function(e){
    if(e.which == 27){
        console.log("escape detected");
        $(this).blur();    
    }
});

我的问题是,不过我试图实现这一点,仍然会调用模糊,所以这意味着即使我不希望它们仍然保存更改。

1 个答案:

答案 0 :(得分:1)

以下示例将允许您在输入元素模糊时触发某些内容。然而,按下转义会使元素模糊而不会触发模糊。



function addBlur() {
  $('#input').blur(function (e) {
    console.log('blurring');
    //saving the results 
  });
}

$('#input').on("keyup", function(e){
    if(e.which == 27){
        console.log("escape detected");
    	var el = $(this);
        el.off('blur');
        el.blur();
	addBlur();
    }
});

addBlur();

<input id='input'>  
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
&#13;
&#13;
&#13;

https://jsfiddle.net/www0zcws/1/