Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Не могу устронить конфликт
Форумы портала PHP.SU » Клиентская разработка » JavaScript & VBScript » Не могу устронить конфликт

Страниц (1): [1]
 

1. pantela - 24 Июля, 2012 - 18:00:50 - перейти к сообщению
Есть JS код в котором устронил конфликт:

CODE (javascript):
скопировать код в буфер обмена
  1. jQuery(document).ready(function($){
  2. /* Scroll Down - Begine */
  3.         $(window).scroll(function(){
  4.                 scrollFromTop = $(window).scrollTop();
  5.                 if(scrollFromTop >= 120) {
  6.                         $("#Top").css({'position':'fixed'})
  7.                         $("#Top").stop().css({"top": "0px",'z-index':'9999'});
  8.                 } else {
  9.                         $("#Top").css({'position':''})
  10.                 }
  11.         });
  12. /* Scroll Down - End */
  13. });


Появился ещё один код и файл, делаю по аналогу но всё равно конфликтует.
Код
CODE (javascript):
скопировать код в буфер обмена
  1.                 $(document).ready(function(){
  2.                         $('.tTip').betterTooltip({speed: 300, delay: 200});
  3.                 });

Файл
CODE (javascript):
скопировать код в буфер обмена
  1. $.fn.betterTooltip = function(options){
  2.        
  3.         /* Setup the options for the tooltip that can be accessed from outside the plugin */
  4.         var defaults = {
  5.                 speed: 300,
  6.                 delay: 200
  7.         };
  8.        
  9.         var options = $.extend(defaults, options);
  10.        
  11.         /* Create a function that builds the tooltip markup. Then, prepend the tooltip to the body */
  12.         getTip = function() {
  13.                 var tTip =
  14.                         "<div class='tip'>" +
  15.                                 "<div class='tipMid'>"  +
  16.                                 "</div>" +
  17.                                 "<div class='tipBtm'>" +
  18.                                 "</div>" +
  19.                         "</div>";
  20.                 return tTip;
  21.         }
  22.         $("body").prepend(getTip());
  23.        
  24.         /* Give each item with the class associated with the plugin the ability to call the tooltip */
  25.         $(this).each(function(){
  26.                
  27.                 var $this = $(this);
  28.                 var tip = $('.tip');
  29.                 var tipInner = $('.tip .tipMid');
  30.                
  31.                 var tTitle = (this.title);
  32.                 this.title = "";
  33.                
  34.                 var offset = $(this).offset();
  35.                 var tLeft = offset.left;
  36.                 var tTop = offset.top;
  37.                 var tWidth = $this.width();
  38.                 var tHeight = $this.height();
  39.                
  40.                 /* Mouse over and out functions*/
  41.                 $this.hover(
  42.                         function() {
  43.                                 tipInner.html(tTitle);
  44.                                 setTip(tTop, tLeft);
  45.                                 setTimer();
  46.                         },
  47.                         function() {
  48.                                 stopTimer();
  49.                                 tip.hide();
  50.                         }
  51.                 );                 
  52.                
  53.                 /* Delay the fade-in animation of the tooltip */
  54.                 setTimer = function() {
  55.                         $this.showTipTimer = setInterval("showTip()", defaults.delay);
  56.                 }
  57.                
  58.                 stopTimer = function() {
  59.                         clearInterval($this.showTipTimer);
  60.                 }
  61.                
  62.                 /* Position the tooltip relative to the class associated with the tooltip */
  63.                 setTip = function(top, left){
  64.                         var topOffset = tip.height();
  65.                         var xTip = (left-45)+"px";
  66.                         var yTip = (top-topOffset-60)+"px";
  67.                         tip.css({'top' : yTip, 'left' : xTip});
  68.                 }
  69.                
  70.                 /* This function stops the timer and creates the fade-in animation */
  71.                 showTip = function(){
  72.                         stopTimer();
  73.                         tip.animate({"top": "+=20px", "opacity": "toggle"}, defaults.speed);
  74.                 }
  75.         });
  76. };


P.S. Но если удалить с страницы <script type="text/javascript">$.noConflict();</script> Тогда всё ок, но мне нужна строчка это для первого кода... Растерялся

ФФ Дебаг:
Цитата:
Timestamp: 24.07.2012 19:02:16
Error: $ is undefined
Source File: http://www[dot]test13[dot]ru/components/[dot][dot][dot]ts/js/tooltip[dot]js
Line: 1

Timestamp: 24.07.2012 19:02:16
Error: $ is not a function
Source File: http://www[dot]test13[dot]ru/en/drugstores/regions
Line: 337


Помогите спс.Ув.
2. tuareg - 24 Июля, 2012 - 18:11:08 - перейти к сообщению
Ну и замените в первом файле
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. jQuery(document).ready(function($){
  3.  

на
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. $(document).ready(function(){
  3.  
3. pantela - 25 Июля, 2012 - 09:18:34 - перейти к сообщению
Так не поидёт т.к. JQuery у меня работает на странице с Moottools, а при вашем варианте тогда конфликтует сним, потому и в первом коде у меня так прописанно...
4. Viper - 25 Июля, 2012 - 09:32:01 - перейти к сообщению
CODE (javascript):
скопировать код в буфер обмена
  1. var $ = document.id;
для mootools
5. pantela - 25 Июля, 2012 - 09:46:18 - перейти к сообщению
Это куда вставить... А я что конфликт по первому коду неверно устранил? Растерялся
6. Viper - 25 Июля, 2012 - 11:05:35 - перейти к сообщению
pantela сделайте действия из поста №2 только наоборот.
7. pantela - 25 Июля, 2012 - 12:33:06 - перейти к сообщению
Так мне надо оставить код <script type="text/javascript">$.noConflict();</script> Он что не верный? Просто при этом коде в кодах JQuery используется $, а если использовать метод поста №2, тогда надо переписывать с $ на JQuery
8. Viper - 25 Июля, 2012 - 12:58:07 - перейти к сообщению
pantela ключевая ошибка писать $(document).ready(function(){...
Т.к. при совмещении крупных проектов гарантированно возникают ошибки.

http://docs[dot]jquery[dot]com/Using_jQu[dot][dot][dot]the_[dot]24-function Прочитайте внимательно
9. pantela - 25 Июля, 2012 - 17:00:10 - перейти к сообщению
спс. прочитал и кое как сделал так всё работает.
Встраницу прописываю: <script type="text/javascript">jQuery.noConflict();</script>
Между JS код делаю:
CODE (javascript):
скопировать код в буфер обмена
  1. jQuery(document).ready(function($){...});


Вроде всё работает. Растерялся Верно? т.е. я сбиваю конфликт jQuery, и а вкоде испольщую jQuery как $ Растерялся
10. Viper - 25 Июля, 2012 - 17:53:32 - перейти к сообщению
pantela пишет:
Верно? т.е. я сбиваю конфликт jQuery, и а вкоде испольщую jQuery как $


Все верно. У вас для $ обертка jQuery(document).ready(function($){ и в ней вы пишете код через $. А остальные скрипты "заворачиваются" через noConflict и ихний код пишется как вроде у вас jQuery не подключен(как пример с mootools).

 

Powered by ExBB FM 1.0 RC1