1

div をランダムに表示/非表示にするこのスクリプトがあります。しかし、何らかの理由で、ページがロードされたときに何も表示されません:

$(document).ready(function() {
      $('.control').on('click', function(e) {
          e.preventDefault();
          var field = $(this).data('field');
          $('.hider:visible').fadeOut("slow", function() {
              $('#' + field + '-gallery, #' + field + '-tag').fadeIn("slow");
          });
      });

      var randomIndex = Math.floor((Math.random() * 100) + 1) % 5;
      console.log(randomIndex);

      var field = $($('a').get(randomIndex)).data('field');
      $('#' + field + '-gallery, #' + field + '-tag').fadeIn("slow");
  });

そして、私はこれを(フッターに)持っています:

/* jQuery.noConflict() for using the plugin along with other libraries. 
           You can remove it if you won't use other libraries (e.g. prototype, scriptaculous etc.) or 
           if you include jQuery before other libraries in yourdocument's head tag. 
           [more info: http://docs.jquery.com/Using_jQuery_with_Other_Libraries] */
        //jQuery.noConflict(); 
        /* calling thumbnailScroller function with options as parameters */
        (function($){
        window.onload=function(){ 
            $("#tS2").thumbnailScroller({ 
                    scrollerType:"clickButtons", 
                    scrollerOrientation:"horizontal", 
                    scrollSpeed:2, 
                    scrollEasing:"easeOutCirc", 
                    scrollEasingAmount:600, 
                    acceleration:10, 
                    scrollSpeed:900, 
                    noScrollCenterSpace:10, 
                    autoScrolling:0, 
                    autoScrollingSpeed:2000, 
                    autoScrollingEasing:"easeInOutQuad", 
                    autoScrollingDelay:500 

            });
        }
        })(jQuery);

フッターのスクリプトで jQuery.noConflict を有効にすると、トップ スクリプトのインスペクターにエラーが表示されることに気付きました。

$(document).ready(function() {
      $('.control').on('click', function(e) {
Uncaught TypeError: Property '$' of object [object Window] is not a function
          e.preventDefault();

しかし、フッター スクリプトで noConflict を無効にすると、エラーは発生しませんが、トップ スクリプトはまだ機能しません。トップスクリプトに別の noConflict を入れる必要がありますか、それとも $(document).ready で間違って呼び出していますか?

4

1 に答える 1

1

jQuery の代わりに使用することもできます$。そして、$他のライブラリのために残します。これにより、競合の問題に直面することはありません。

このようにしてみてください。

jQuery(document).ready(function() {
      jQuery('.control').on('click', function(e) {
          e.preventDefault();
于 2012-07-27T17:05:04.977 に答える