1

我在 focus() 中有一个回调函数,但只要我的元素有焦点,该函数就会继续播放,这是只播放一次函数的一种方式吗?

例如,在此代码中,alert('ok') 将出现,直到 textearea 失去焦点。这是一种只播放一次警报的方法吗?

<textarea></textarea>

<script src="jquery.js"></script>
<script>

$(function () {

    $('textarea').focus(function(){
        alert('ok');
    }); 

});
</script>

http://jsfiddle.net/manguo_manguo/9utcy/

4

2 回答 2

2

不是函数一直在播放,而是你自动从控件中取出焦点以便点击警报,然后焦点回到控件,再次触发焦点事件,尝试测试除了警报之外的任何其他内容。

于 2013-03-01T12:51:02.797 回答
1

更新您的 jQuery 以使用该one()功能。

这是代码:

$(function () {

    $('textarea').one('focus', function(){
        alert('ok');
    }); 

});

这是你的小提琴:http: //jsfiddle.net/9utcy/1/

于 2013-03-01T12:52:26.533 回答