我正在编写一个与事件紧密相关的Javascript脚本。我必须对'focus'事件执行一些指令,并对'select'事件执行一些不同的指令。 令我惊讶的是,我发现以编程方式提供焦点,也会激发“选择”事件!这是一个大问题。 你能告诉我为什么会发生这种情况,并且只有当我以编程方式提供焦点时才能以编程方式阻止选择事件吗?
请参阅以下示例。当点击“给焦点”按钮时,控制台会写“你选择了什么”!
谢谢
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<script src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
</head>
<body>
<input id="field" type="text" />
<a href="#" id="btn">Give focus</a>
<script>
$(document).ready(function () {
$('#field').on('select', function(e) {
console.log('You selected something');
});
$('#btn').on('click', function(e) {
$('#field').focus();
})
});
</script>
</body>
</html>
答案 0 :(得分:0)
试试这个:
$(document).ready(function () {
$('#field').on('select', function(e) {
console.log('You selected something');
});
$('#btn').click( function(e) {
$('#field').focus();
})
});
<input id="field" type="text" />
<a href="#" id="btn">Give focus</a>
<script src="https://code.jquery.com/jquery-2.2.4.min.js"></script>