我使用此代码来处理事件,但如果两个或其中一个发生,我想要触发一次。
$(document).on("keypress blur", ".pollOptionInput", function(e) {
if (e.type == 'focusout' || e.keyCode == 13) {
e.preventDefault();
addPollOption();
$('.btnAdd').focus();
}
});
如果按下回车键,我的代码会激活两次。 我怎样才能解决我的问题?
答案 0 :(得分:1)
它没有任何问题。也许你附上事件两次,这就是问题所在。 请注意,我改变了一种附加事件的方式 - read more
$(document).ready(function(){
$(".pollOptionInput").on("keypress blur", function(e) {
if (e.type == 'blur' || e.keyCode == 13) {
e.preventDefault();
//addPollOption();
//$('.btnAdd').focus();
console.log('EVENT!');
}
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<input type="text" class="pollOptionInput" />
<input type="text" class="pollOptionInput" />
<input type="text" class="pollOptionInput" />
答案 1 :(得分:0)
这是你所期望的吗? 您可以通过以下方式传递文档中的函数:
var myFunction = function() {
addPollOption();
$('.btnAdd').focus();
//if you don't want an event occurs multiple times after one call:
e.stopPropagation();
}
$('document')
.keypress(myFunction)
.blur(myFunction)