2016-02-14 2 views
4

В следующем коде, почему это событие трижды срабатывает? «Текст отмечен!» добавляется три раза после ввода.Событие jquery, выпущенное несколько раз

<!DOCTYPE html> 
<html> 
<head> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script> 
<script> 
$(document).ready(function(){ 
    $("input").select(function(){ 
     $("input").after(" Text marked!"); 
    }); 
    $("button").click(function(){ 
     $("input").trigger("select"); 
    }); 
}); 
</script> 
</head> 
<body> 

<input type="text" value="Hello World"><br><br> 

<button>Trigger the select event for the input field</button> 

</body> 
</html> 
+0

Поскольку вы нажимаете кнопку 3 раза? Я применил код непосредственно в jsfiddle, и он отлично работает. – mmaceachran

+0

@mmaceachran Не в Chrome, это не так: https://jsfiddle.net/rmns4pyq/1/ – BenM

+0

FWIW, похоже, это ошибка в Chrome. Пробовал в Firefox, и он работает нормально. – BenM

ответ

5

Я могу подтвердить, что это произошло для меня в Chrome. Я действительно не знаю, почему, но вы можете исправить это, добавив event.preventDefault().

$("input").select(function(event){ 
    event.preventDefault(); 
    $("input").after(" Text marked!"); 
}); 

Демо: http://jsbin.com/yedoxov/edit?html,js,output

Смежные вопросы