2011-01-01 2 views
1

Я использую JQuery наложенного здесь:OnLoad фокуса() событие в jquerytools наложение эффекта

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)

Любая помощь оценена! :)

Благодаря

Том

EDIT Этот код делает то, что я хочу, чтобы это, но я не являюсь ни мудрее, почему это работает, когда приведённый выше код не ....

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

ответ

1

Упрощенный пример, основанный на этом jQuery Tools demo, кажется, работает: http://jsfiddle.net/heikki/2Fkqu/

Нажмите «Пользователь вход ", чтобы открыть оверлей.

+0

Спасибо за это - я скопировал и вставил соответствующие биты, и он работает. Я, к сожалению, не мудрее относительно того, почему это работает против оригинала, но по крайней мере он работает :) – tomcritchlow

+0

Возможно, у вас есть несколько элементов с идентификатором '# amazon-terms' на вашей странице? – Heikki