2011-08-24 58 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>