由于JQuery中获得的对象还是JQuery对象,对其使用focus()只是使该对象获得onFocus()函数,不能是对象获得焦点,所以要使对象获得焦点,应该调用DOM对象的focus 方法,即: $("#id")[0].focus()需要注意两个函数之间的区别: $("#id").focus() 和 $("#id")[0].focus()第一个是增加onFocus()时间,一个是使DOM对象获得焦点。
怎样可以在“jquery”让文本框获取焦点时改变背景颜色?
1、先使用jQuery选择器找到所有的文本框
2、为文本框注册获得焦点事件,即focus事件
3、在焦点事件的事件处理函数中对当前得到焦点的文本框设置背景色
4、注册失去焦点事件,即blur事件
5、在失去焦点的事件处理函数中对当前触发事件的文本框改变背景颜色<script type="text/javascript"> $(funct $("input:text").focus(function(){ //让当前得到焦点的文本框改变其背景色$(this).css("background","pink")}) //找到文本框,并注册失去焦点事件$("input:text").blur(function()//让当前失去焦点的文本框背景色变为白色$(this).css("background","white") }) })</script>
首先我要说你的事件注册的不对,应该这样写:$("#two").focus()
$("div").keydown(function(e){
if(e.keyCode == 13){
alert($(this).html())
}
})
其次,div默认是不能focus的,所以你的焦点就没进去。
如果你实在是要实现div的focus,并且按回车显示内容的话,我有一个办法能达到你的效果。
把三个div换成这样:
<div id="one" contenteditable="true">oooo</div>
<div id="two" contenteditable="true">tttt</div>
<div id="three" contenteditable="true">hhhh</div>
不管IE还是火狐都能达到你的效果。
表单可以直接调用focus的,如:#('select#abc').foucs()
focus仅仅是让表单元素处于焦点获取状态而已,文本会有个指针状态,下拉表单、单选、复选则是有个虚框或黄色的框框显示而已。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)