我正在编写一个与事件紧密绑定的Javascript脚本。我必须在“焦点”事件上执行一些指令,在“选择”事件上执行一些不同的指令。令我惊讶的是,我发现以编程方式给出焦点,也会触发'select‘事件!这是个大问题。
你能告诉我为什么会发生这种情况吗?是否只有当我以编程方式给出焦点时,我才能以编程方式阻止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>
发布于 2016-10-28 16:21:47
试试这个:
$(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>
https://stackoverflow.com/questions/40300713
复制相似问题