$(...)。fancybox不是一个功能,无法读取属性' msie'

时间:2016-02-03 13:46:54

标签: jquery fancybox fancybox-2

我是最新版本的jQuery并尝试使用fancybox,但这些消息总是出现:

  

未捕获的TypeError:无法读取属性' msie'未定义的

     

未捕获TypeError:$(...)。fancybox不是函数

我也试过jQuery.noConflict(),我的jQuery在fancybox.js之前加载

1 个答案:

答案 0 :(得分:0)

您是否尝试过使用新的fancybox? http://fancyapps.com/fancybox/

这是jquery.fancybox-1.3.4.js文件中的前几行

;(function($) {
    var tmp, loading, overlay, wrap, outer, content, close, title, nav_left, nav_right,    
        selectedIndex = 0, selectedOpts = {}, selectedArray = [], currentIndex = 0, currentOpts = {}, currentArray = [],    
        ajaxLoader = null, imgPreloader = new Image(), imgRegExp = /\.(jpg|gif|png|bmp|jpeg)(.*)?$/i, swfRegExp = /[^\.]\.(swf)\s*$/i,    
        loadingTimer, loadingFrame = 1,    
        titleHeight = 0, titleStr = '', start_pos, final_pos, busy = false, fx = $.extend($('<div/>')[0], { prop: 0 }),    
        isIE6 = $.browser.msie && $.browser.version < 7 && !window.XMLHttpRequest,

它会在这里失败

isIE6 = $.browser.msie && $.browser.version < 7 && !window.XMLHttpRequest,

因为{1.9}已从1.9开始删除,除非您包含jquery.migrate https://api.jquery.com/jquery.browser/

由于它失败了 - $ .fancybox永远不会有机会被宣布,这就是为什么你得到2个错误。

新的fancybox没有使用jquery.browser而是正在使用jQuery.browser

所以你必须选择下面的一个

  1. 使用新的fancybox
  2. 使用较旧的jquery库
  3. 包括jquery.migrate