此代码将“我选择输入!”写入控制台,但未在输入中选择文本
HTML:
<script src="http://code.jquery.com/jquery-2.0.3.min.js"></script>
<input type="text" id="foo">
和javascript:
$(function() {
$('#foo').on('change', function(){
$(this).select();
});
$('#foo').on('select', function(){
console.log("I'm selected input!");
});
});
UPD 1: stopPropagation
和preventDefault
可以运行机器人
UPD 2 :此代码也不起作用:
$('#foo').on('change', function(){
$(this).focusout(function(){
$(this).select().focus();
});
});
更新3:当我使用debugger
时,我看到了所选文字
P.S。抱歉我的英语不好:)
答案 0 :(得分:0)
同时在那里运行的事件太多了!所以你需要延迟select方法。另外,$(this)在setInterval / setTimeout方法中是不同的,因此您需要按如下方式缓存它:
$(function() {
$('#foo').change(function(){
var $this=$(this);
setTimeout(function(){
$this.select();
},10);
});
$('#foo').select(function(){
alert("I'm selected input!");
});
});
使用多种浏览器进行测试