Форма Squarespace не загружается при запуске jquery (в IE) - PullRequest
0 голосов
/ 16 июня 2011

Основная проблема заключается в том, что квадрат-пространство строит свои формы с помощью java-скрипта (YUI). Они загружают свой код на документ готов. Как я могу ждать, пока загрузится их форма? Это проблема только в IE.

Мой код: (выполняется первым)

$(document).ready(function() {
    $('#formFieldEl6').each(function(){
        var collection = $.deparam.querystring(window.location);
        $(this).val(collection.id);
        $(this).attr("disabled", true);
    });
});

Код Squarespace: (выполняется последним)

  var theForm10248992;
  YAHOO.util.Event.onDOMReady(function() {
  theForm10248992 = new Squarespace.FormBuilder( "theForm10248992", "formOuterContainer10248992", "formFields10248992", "formAddFieldControl10248992", "formErrorMessage10248992", "formSubmitButton10248992", 10248992,  true ,  false ,  false , "Thanks for responding!" );

  theForm10248992.initializeField( 6, "normal", "Title1", "", true, "", "", 1504386 );
  theForm10248992.initializeField( 9, "normal", "Title2", "", true, "", "", 1504463 );
  theForm10248992.initializeField( 4, "medium", "Title3", "", true, "", "", 1504387 );
  theForm10248992.initializeField( 1, "medium", "Title4", "", true, "", "", 1504395 );
  theForm10248992.initializeField( 2, "large", "Title5", "", true, "", "", 1504390 );
  theForm10248992.initializeField( 1, "small", "Title6", "", true, "", "", 1599975 );

  if (Squarespace.Orderable) { Squarespace.Orderable.ItemManager.initialize(); }
  });

Код просто заполняет значение из URL и отключает элемент управления. Это работает в FF и Chrome. При отладке с помощью инструментов разработчика в IE я могу вручную дождаться точки останова, пока форма не загрузится, а затем код заработает, но я все еще не могу заставить это работать в нормальных условиях. Есть идеи?

Ответы [ 2 ]

1 голос
/ 03 июля 2012

$ (окно).нагрузка (функция () {....});Исправлена ​​проблема - она ​​срабатывает, когда все окно загружено.

1 голос
/ 12 августа 2011
$(document).ready()

срабатывает при загрузке html и css.Он не проверяет, загружены ли изображения.

Попробуйте $ ("body"). Load (function () {alert ("bodyloaded");})

Это срабатывает, когдаhtml, css и изображения загрузились, обычно это немного позже.

В качестве альтернативы рассмотрите использование таймера для запуска кода через несколько миллисекунд после того, как document.ready сработает.

...