2012-06-26 4 views
0

У меня есть html-страница с именем search.html, которая содержит ползунки, они отлично работают на этой странице.jQuery UI слайдер с функцией загрузки jQuery-AJAX не работает

Я пытаюсь загрузить эту страницу в другую (мою главную страницу) с помощью функции jQuery .load().

Я удалил инициализацию слайдера от search.html и поставить его в функцию обратного вызова нагрузки() в главной странице, так он выполняется после того, как DOM, установите с помощью AJAX, готов, следующим образом:

$("#display_area").load("search.html","",function(response,status,xhr){ 
//#display_area is a div 
$("#sliderprice").slider({ max: 1000 },{ step: 10 }); 
//#sliderprice is a div 
}) 

У меня есть JS-скрипты для jQuery и jQuery UI, включенные в заголовок страницы search.html и главной страницы.

Когда я загружаю основную страницу, иногда слайдер работает правильно, но иногда он вообще не работает (не инициализируется), и когда это происходит, консоль ошибок firebug показывает: $ ("# sliderprice ") .slider не является функцией

Все, что я делаю, это обновить страницу, и иногда она работает, а иногда и нет.

Я хотел бы исправить это, чтобы он работал все время. Любая помощь будет оценена по достоинству.

+0

Вы пробовали $ (документ) .ready (function() {}); ?? – JSantos

+0

Да, это звучит как ошибка порядка загрузки. Использование вышеуказанного предложения может исправить это. –

+0

Если вы хотите оставить код на странице search.html и поместить его в $ (document) .ready(), это не сработает. $ (document) .ready() никогда не запускается при вызове через .load(). Если, однако, вы имеете в виду на главной странице, я знаю, через отладку, что, когда функция вызывается, DOM готов к ней, но она не распознает функцию. –

ответ

0

Я нашел решение самостоятельно, все, что мне нужно было сделать, это удалить скрипт JS для jQuery и jQuery UI с страницы search.html и сохранить его только на главной странице.

Видимо, вставляя его в оба, перезагружает сценарий снова, когда запускается функция .load(), и иногда функции обратного вызова запускаются до перезагрузки скрипта.

Я не знаю, как вставки скриптов и загрузка выполняются через .load() или вообще, но он исправил проблему.