Категории |
Конфликты скриптов jquery или как заменить переменные!Надеюсь эта тема будет полезна всем, кто захотел происпользовать на своем сайте несколько скриптов. <script type="text/javascript"> var $j = jQuery.noConflict(); </script> Данная часть кода вставляется после запуска jquery. Далее необходимо заменить все переменные для карусели товаров, которые расположены в файле box_goods_carousello.html: <script> {if $BOX_GOOD_CAROUSELLO_AUTOSCROLL == 0} {literal}$j(function() { $j(".scrollable").scrollable(); });{/literal} {else} var js_autoscroll_delay = {$BOX_GOOD_CAROUSELLO_AUTOSCROLL_DELAY}; {literal}$j(function() { $j(".scrollable").scrollable({circular: true}).autoscroll({interval: js_autoscroll_delay}); });{/literal} {/if} </script> Т.е. мы заменили просто $ на $j. Перезаписываем файлы и вуаля, каруселька закрутилась. Но дальше я столкнулся со следующей проблемой - перестал работать vtip скрипт - тот самый, который использовал NeBox (за что ему большое спасибо) в описании процесса по увеличению картинки при наведении курсора в списке категории (http://www.shopos.ru/forum/index.php?topic=4546.0). Для решения этой проблемы пришлось также произвести замену переменных, но уже в файле vtip-min.js: this.vtip=function(){this.xOffset=-10;this.yOffset=10;$j(".vtip").unbind().hover(function(a){this.t=this.title;this.title="";this.top=(a.pageY+yOffset);this.left=(a.pageX+xOffset);$j("body").append('<p id="vtip"><img id="vtipArrow" />'+this.t+"</p>");$j("p#vtip #vtipArrow").attr("src","images/vtip_arrow.png");$j("p#vtip").css("top",this.top+"px").css("left",this.left+"px").fadeIn("slow")},function(){this.title=this.t;$j("p#vtip").fadeOut("slow").remove()}).mousemove(function(a){this.top=(a.pageY+yOffset);this.left=(a.pageX+xOffset);$j("p#vtip").css("top",this.top+"px").css("left",this.left+"px")})};jQuery(document).ready(function(a){vtip()}); И опять-таки все заработало. ИТОГ: Не знаю насколько грамотно я решил данную проблему, т.к. не имею опыта программирования и не все процессы поддаются моему пониманию, но результат есть! Надеюсь мой опыт поможет "чайникам" как я решить подобные проблемы и сократит время поиска различных частей кода. Готового решения на форуме не нашел. P.S. Возможно из-за этого конфликта у меня и не получилось запустить раздвижную корзину (или поиск, неважно). Буду дальше "копать"! ну так lightbox работает на prototype. Конечно глюки были бы. ну так lightbox работает на prototype. Конечно глюки были бы. В данном случае нужно было выкинуть lightbox и найти скрипт работающий с jQuery, а не переделывать кучу работы. Какая разница в чем картинки открывать? Главное, чтобы работало корректно везде. И все) Возможно...на самом деле работы не очень много, просто мне пришлось разбираться и перелопачивать кучу файлов, т.к. не знал где искать и что искать...Но получил бесценный опыт... |
|