我在focus()中有一个回调函数,但只要我的元素有焦点,函数就会继续播放,这是一次只播放一次这个函数吗?
例如,在此代码中,警报('ok')将一直到textearea将失去焦点。它只是一次播放警报吗?
<textarea></textarea>
<script src="jquery.js"></script>
<script>
$(function () {
$('textarea').focus(function(){
alert('ok');
});
});
</script>
答案 0 :(得分:2)
不是功能一直在播放,而是你自动从控件中取出焦点以点击警告,然后焦点返回到控件,再次发射焦点事件,尝试用警报之外的其他任何东西进行测试。
答案 1 :(得分:1)
更新您的jQuery以使用one()
函数。
以下是代码:
$(function () {
$('textarea').one('focus', function(){
alert('ok');
});
});
这是你的小提琴:http://jsfiddle.net/9utcy/1/