Проблема с jQuery fancybox

У меня есть форма, открытая в окне jQuery Fancybox. Окно fancybox открывается автоматически при загрузке страницы. Когда он загружается, я хочу, чтобы он установил фокус на поле имени пользователя в форме в окне Fancybox. Я обнаружил, что это необходимо сделать, когда fancybox включен, поэтому я пробовал данный код, который не работает: Код фрагмента:

jQuery(document).ready(function() {
$("#hidden_link").trigger('click');
document.getElementById('username').focus(); 
});

Имя формы - «login_form», а идентификатор поля - «имя пользователя».

0
nl ja de
какая версия fancybox?
добавлено автор JFK, источник

3 ответы

я не совсем уверен, какую версию вы используете.

я предполагаю, что вы используете версию 1 поэтому попробуйте добавить эти параметры, когда звоните fancybox

  • onStart Будет вызываться прямо перед загрузкой содержимого
  • onCancel Будет вызван после отмены загрузки
  • onComplete Будет вызываться после отображения содержимого
  • onCleanup Будет вызван непосредственно перед закрытием
  • onClosed Будет вызван, как только FancyBox будет закрыт

this come from fancybox api documents http://fancybox.net/api

и добавьте функцию, которую вы хотите использовать.

в этом случае

$('#somediv').fancybox({
    oncomplete: function() {
        document.getElementById('username').focus();
    }
});
1
добавлено
это мой фактический код: jQuery.ajax ({type: "POST", url: "loadCustomerDetails.php", success: function (msg) {$ ('# customerDetails'). html (msg); $ ("# hidLinkCustomerDetails ") .fancybox (). trigger ('clic & zwnj; k'); $ ('# txtCustomer'). focus ();}});
добавлено автор AGK, источник

Вы пытаетесь вызвать focus() перед появлением fancybox. Вместо того, чтобы поместить этот вызов в ready (), поместите его в onComplete ().

onComplete: function() { 
          $('#username').focus(); 
}
0
добавлено
его просто запускает fancybox .... jQuery.ajax ({type: "POST", url: "loadCustomerDetails.php", success: function (msg) {$ ('# customerDetails'). html (msg); $ ( «#hidLinkCustomerDetails»). fancybox (). trigger ('clic & zwnj; k'); $ ('# txtCustomer'). focus ();}}); ..Это фактический код
добавлено автор AGK, источник

Я должен использовать setTimeout для решения этой проблемы.

onComplete: function() {       setTimeout (function() {           $ ( 'Sms_code') [ "1"] фокус ().           }, 1000); }

0
добавлено
Верстка сайтов HTML/CSS/JS/PHP
Верстка сайтов HTML/CSS/JS/PHP
3 439 участник(ов)

Правила группы: напишите !rules в чате. Группа Вк: vk.com/web_structure Freelancer: @web_fl Веб Дизайн: @dev_design Маркетолог: @topmarkening Автор: @M_Boroda