onLoad focus()事件在jquerytools覆盖效果中

时间:2011-01-01 13:13:52

标签: jquery focus overlay jquery-tools

我正在使用此处的叠加层jquery:

http://flowplayer.org/tools/overlay/index.html

在我的叠加层中,我有一个像这样的搜索框:

<div class="simple_overlay" id="asearch">

    <div id="searchbox">
    <form id="amazonsearch" style='float:left;'>
        <input class="title" id="amazon-terms" style="width:400px;font-size:2em;">
        <button class="sexybutton sexysimple sexygreen">Search</button>

    </form>

    <div id="amazon-results"></div>

    </div><!--seachbox-->

</div><!--Overlay-->

我想要发生的是当您加载叠加层时,叠加层中的搜索框会获得焦点,因此您可以开始输入它。我认为这样可行:

$("a[rel]").overlay({

onLoad: function() {
$('#amazon-terms').focus(); 
}

});

但这似乎没有做任何事情。我知道事件正在解雇,因为这有效:

$("a[rel]").overlay({

onLoad: function() {
alert('popup opened') 
}

});

但是,当此警报触发时,屏幕上还没有出现叠加层,所以我想知道这是否是问题的一部分?根据文档onLoad应该“在叠加层完全显示时”(ref

任何帮助表示赞赏! :)

由于

汤姆

编辑这段代码符合我的要求,但是当上面的代码不能解决时,为什么会这样做,我并不是更明智的。

var triggers = $("a[rel]").overlay({
closeOnClick: false,
onLoad: function() {
$('input').focus();
}
});

1 个答案:

答案 0 :(得分:1)

基于此jQuery Tools demo的简化示例似乎有效:http://jsfiddle.net/heikki/2Fkqu/

点击“用户输入”按钮打开叠加层。