2012-02-25 90 views
0
不行

我的代码是var jQuery = jQuery.noConflict();在IE7和IE8

var jQuery = jQuery.noConflict(); 
$(document).ready(function() { 
var $filterType = $('#filterOptions li.active a').attr('class'); 
var $holder = $('ul.ourHolder'); 
var $data = $holder.clone(); 
    $('#filterOptions li a').click(function(e) { 
     $('#filterOptions li').removeClass('active'); 
     var $filterType = $(this).attr('class'); 
     $(this).parent().addClass('active'); 
     if ($filterType == 'all') { 
      var $filteredData = $data.find('li'); 
     } 
     else { 
      var $filteredData = $data.find('li[data-type=' + $filterType + ']'); 

     } 
     $holder.quicksand($filteredData, { 
      duration: 800, 
      easing: 'easeInOutQuad' 
     }); 
     return false; 
    }); 
}); 

当我的评论(//无功jQuery的= jQuery.noConflict();),那么noConflict这个代码工作,但 如果没有这个评论则其无法正常工作与ie7和也ie8

我也使用$ jQuery = jQuery.noConflict();

回答

3

一个成语我经常用它来代替是:地方使用jQuery的一个函数带一个参数$代码和呼叫与jQuery的对象,函数,就像这样:

(function($) { 
    $(document).ready(function() { 
     var $filterType = $('#filterOptions li.active a').attr('class'); 
     var $holder = $('ul.ourHolder'); 
     var $data = $holder.clone(); 
     $('#filterOptions li a').click(function(e) { 
      $('#filterOptions li').removeClass('active'); 
      var $filterType = $(this).attr('class'); 
      $(this).parent().addClass('active'); 
      if ($filterType == 'all') { 
       var $filteredData = $data.find('li'); 
      } 
      else { 
       var $filteredData = $data.find('li[data-type=' + $filterType + ']'); 

      } 
      $holder.quicksand($filteredData, { 
       duration: 800, 
       easing: 'easeInOutQuad' 
      }); 
      return false; 
     }); 
    }); 
})(jQuery); 
3

如果使用

var jQuery = jQuery.noConflict(); 

你需要每$('...')jQuery('....')

-1

如果$不行尝试:

var $ = (jQuery); 

    $(document).ready(function(){ 
    active_function(); 
    }); // ready 
+1

你能解释一下这是如何解决原始问题的吗? – 2015-10-10 04:12:17