我有一个 JQuery 代码,当输入或选择元素获得焦点时它会执行某些操作。 虽然我的输入元素代码有效,但选择元素不起作用。
这就是我所做的。
<body>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$(":input").focus(function () { //this works
//do something
});
$(":select").focus(function () { //this doesn't
//do something
});
});
</script>
</body>
我尝试了一些 select 的变体,例如使用 $("select") 而不是 $(":select"), 但也没有用。
我是 JQuery 的初学者。
如果您能告诉我如何让它发挥作用,我将不胜感激。
非常感谢!
最佳答案
简短:因为:select
不存在。
$('select')
will work ,但前提是您有 <select>
代码中的元素。你上面的代码中没有。
看看 list of selectors .
<小时/>Selects all input, textarea, select and button elements.
一般情况下:以冒号 :
开头的选择器是伪选择器。它们由 jQuery 定义(它们不是有效的 CSS 选择器)并选择具有特定状态或属性的元素。
您已经遇到过:input
。它选择所有表单控制元素。另一种是例如 : visible
,它选择所有显示的(可见)元素。
更新:
<select>
当 $('select').focus(...
时元素必须存在被执行。我不知道您正在使用的软件,但如果它们加载元素,例如通过 Ajax,那么当您的代码执行时它们很可能还不存在。
- 确保有
<select>
页面上的元素。 您可能需要使用
.live()
:$('select').live('focus', function() { //stuff });
关于jquery - 为什么 $ (":select").focus 不起作用,而 $ (":input").focus 起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5000692/