2011-08-24 88 views
-1

我正在學習jquery呢。我也讀了一些關於jquery noConflict的內容,但我嘗試過的所有內容都無法正常工作。我不明白如何使用noConflict(),如果是我的問題是正確的。我正在測試這個項目here.jquery noconflict()

一切正常,直到我把自動完成功能。 現在只有自動完成搜索的工作,嘗試在輸入類型中搜索「et」,但這裏有一個我不明白的問題:Uncaught TypeError:無法調用null的方法'accordion'。

另一個函數還有另一個問題:「mostraparcelas」因爲目前沒有定義,但是如果我刪除對該函數的調用,則不會改變我的問題。 我在測試,所以現在有更多的問題與「mostraparcelas」,但它不是真正的問題。 我有問題jquery corousel,JQUItabs,手風琴,自動完成和原型工作togheter。

我剛剛解決了手風琴和noConflict這樣的第一次衝突:

<script type="text/javascript"> 
<!--//--><![CDATA[//><!-- 
$.noConflict(); 
    jQuery(document).ready(function($) { 
$("html").addClass("js"); 
$.fn.accordion.defaults.container = false; 
$(function() { 
    $("#acc3").accordion({initShow : "#current"}); 
    $("#acc1").accordion({ 
     el: ".h", 
     head: "h4, h5", 
     next: "div", 
     initShow : "div.outer:eq(1)" 
    }); 

    $("#acc2").accordion({ 
     obj: "div", 
     wrapper: "div", 
     el: ".h", 
     head: "h4, h5", 
     next: "div", 
     showMethod: "slideFadeDown", 
     hideMethod: "slideFadeUp", 
     initShow : "div.shown" 
    }); 
    $("html").removeClass("js"); 
}); 
}); 
//--><!]]> 
</script> 
<!--<![endif]--> 

我有其他的問題呢。如果這很容易,你試圖幫助我,而不是我的聲譽degree.Thanks。

回答

1

我也解決了別人的衝突。 對於我以這種方式使用noConflict()的圓盤傳送帶:

<script type="text/javascript" charset="utf-8"> 
jQuery.noConflict(); 
(function($) { 
    $(function() { 
(function() { 
    $.fn.infinitecarousel = function() { 
     function repeat(str, n) { 
      return new Array(n + 1).join(str); 
     } 
     return this.each(function() { 
      // magic! 
      var $wrapper = $('> div', this).css('overflow', 'hidden'), 
       $slider = $wrapper.find('> ul').width(9999), 
       $items = $slider.find('> li'), 
       $single = $items.filter(':first') 
       singleWidth = $single.outerWidth(true), 
       visible = Math.ceil($wrapper.innerWidth()/singleWidth), 
       currentPage = 1, 
       pages = Math.ceil($items.length/visible); 
      /* TASKS */ 
      // 1. pad the pages with empty element if required 
      if ($items.length % visible != 0) { 
       // pad 
       $slider.append(repeat('<li class="empty" />', visible - ($items.length % visible))); 
       $items = $slider.find('> li'); 
      } 
      // 2. create the carousel padding on left and right (cloned) 
      $items.filter(':first').before($items.slice(-visible).clone().addClass('cloned')); 
      $items.filter(':last').after($items.slice(0, visible).clone().addClass('cloned')); 
      $items = $slider.find('> li'); 
      // 3. reset scroll 
      $wrapper.scrollLeft(singleWidth * visible); 
      // 4. paging function 
      function gotoPage(page) { 
       var dir = page < currentPage ? -1 : 1, 
        n = Math.abs(currentPage - page), 
        left = singleWidth * dir * visible * n; 
       $wrapper.filter(':not(:animated)').animate({ 
        scrollLeft : '+=' + left 
       }, 1000, function() { 
        // if page == last page - then reset position 
        if (page > pages) { 
         $wrapper.scrollLeft(singleWidth * visible); 
         page = 1; 
        } else if (page == 0) { 
         page = pages; 
         $wrapper.scrollLeft(singleWidth * visible * pages); 
        } 
        currentPage = page; 
       }); 
      } 
      // 5. insert the back and forward link 
      $wrapper.after('<a href="#" class="arrow back">&lt;</a><a href="#" class="arrow forward">&gt;</a>'); 
      // 6. bind the back and forward links 
      $('a.back', this).click(function() { 
       gotoPage(currentPage - 1); 
       return false; 
      }); 
      $('a.forward', this).click(function() { 
       gotoPage(currentPage + 1); 
       return false; 
      }); 
      $(this).bind('goto', function (event, page) { 
       gotoPage(page); 
      }); 
      // THIS IS NEW CODE FOR THE AUTOMATIC INFINITE CAROUSEL 
      $(this).bind('next', function() { 
       gotoPage(currentPage + 1); 
      }); 
     }); 
    }; 
})(jQuery); 

$(document).ready(function() { 
    // THIS IS NEW CODE FOR THE AUTOMATIC INFINITE CAROUSEL 
    var autoscrolling = true; 
    $('.infinitecarousel').infinitecarousel().mouseover(function() { 
     autoscrolling = false; 
    }).mouseout(function() { 
     autoscrolling = true; 
    }); 
    setInterval(function() { 
     if (autoscrolling) { 
      $('.infinitecarousel').trigger('next'); 
     } 
    }, 6000); 
}); 
}); 
})(jQuery); 
</script> 

和用於選項卡作爲與上述相同:

<script type="text/javascript"> 
jQuery.noConflict(); 
(function($) { 
    $(function() { 
    $(function() { 
           //Tabs 
         $("#tabs").tabs(); 
    }); 
}); 
})(jQuery); 
</script> 

僅用於我已經以不同的方式使用noConflit()手風琴:

$.noConflict(); 
    jQuery(document).ready(function($) { 

//腳本myAccordion .....

}); 
}); 
//--><!]]> 
</script>