Похожая проблема. C библиотекой jquery и плагинами вроду jquery.ui решил отчасти перепроверкой существования объекта Jquery и его плагина ui.
код в template.php от sale.order.ajax:
Код |
---|
<sc ript language="JavaScript" type="text/javascript">
var jQ = false;
function initJQ() {
if (typeof(jQuery) == 'undefined') {
if (!jQ) {
jQ = true;
document.write('<scr' + 'ipt type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></scr' + 'ipt>');
}
s etTimeout('initJQ()', 50);
}
}
initJQ();
if (typeof jQuery == "function" && ('ui' in jQuery) && jQuery.ui && ('version' in jQuery.ui))
{ } else {
document.write('<scr' + 'ipt type="text/javascript" src="<?= SITE_TEMPLATE_PATH ?>/js/jquery-ui-1.8.22.custom.min.js"></scr' + 'ipt>');
document.write('<l'+'ink rel="stylesheet" href="<?= SITE_TEMPLATE_PATH ?>/js/jquery_ui/custom-theme/jquery-ui-.custom.css"/>');
document.write('<scr' + 'ipt type="text/javascript" src="<?= SITE_TEMPLATE_PATH ?>/js/jquery_ui/ui.selectmenu.js"></scr' + 'ipt>');
document.write('<l'+'ink rel="stylesheet" href="<?= SITE_TEMPLATE_PATH ?>/js/jquery_ui/custom-theme/ui.selectmenu.css"/>');
}
</sc ript>
|
Но осталось одно НО:
в jquery UI у меня используется слайдер, и в принципе он сам инициализируется, но вот его события такие как slide, stop и прочие не работают. Копал вглубь, обнаружил что после отрабатывания аякса и подгрузки компонента, конструкции вроде $(this).position().left и им подобные возвращают нули и большая часть кода библиотеки становится бесполезна, поскольку практически везде идет работа с размерами элементов и позиционированием. Ну и опять же те функции, которые декларированы внутри метода $(element).slider(); не срабатывают.
Что тут можно было бы сделать? в каком направлении двигаться то? переписывать библиотеку UI не хочется что-то...