2014-07-09 29 views
0

我试图建立一个网站,但我遇到了一些问题,当它归结为使用2个版本的jquery qith bootstrap系统(也与引导验证器)。引导+ jQuery的2个版本

首先,我已经知道这里有很多关于jQuery的2个版本的问题,但是我花了最近2天的时间阅读并试图完成这项工作,但我不能! 这就是为什么我在这里。

因此,在我的头标签中,我设置了需要运行的2个版本。 1-是为了使引导脚本起作用,就像下拉菜单和表单验证一样。 2-是运行放大弹出脚本。

这是迄今为止我的头代码:剧本我试图用noConflict()使用的

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
<script type="text/javascript" src="validator/vendor/jquery/jquery-1.10.2.min.js"></script> 

的一部分,但我没有成功。

这就是我所做的。

*脚本我需要改变的jQuery的版本是针对magnificpopup

<script> 
jq1111 = jQuery.noConflict(true); 
</script> 
<script type="text/javascript"> 
jq1111(document).ready(function() { 
    jq1111('.zoom-gallery').magnificPopup({ 
     delegate: 'a', 
     type: 'image', 
     closeOnContentClick: false, 
     closeBtnInside: false, 
     mainClass: 'mfp-with-zoom mfp-img-mobile', 
     image: { 
      verticalFit: true, 
      titleSrc: function(item) {} 
     }, 
      gallery: { 
       enabled: true 
       }, 
      zoom: { 
       enabled: true, 
       duration: 500, // don't foget to change the duration also in CSS 
       opener: function(element) { 
        return element.find('img'); 
       } 
      } 

     }); 
    }); 
</script> 

任何人都可以帮我吗?因为我没有想法,当然,我在jQuery中并不那么先进。

谢谢!

+1

为什么你需要jQuery的版本'1.10 .2'? – Holt

+0

@霍尔特说了什么 - 在1.10和1.11之间没有API变化,所以无论你使用什么插件,你都应该可以独家使用1.11.1。 – Blazemonger

+0

是的,我做了@霍尔特说的话,现在我能够使它工作。但是我不知道为什么,就像上面说的那样,为期2天的工作,从bootstrap和表单的验证器下拉菜单不起作用。或者我有丰富的工作或引导。我只是做了他所说的,现在正在工作。 – celsomtrindade

回答

2

你需要运行标签jQuery.noConflict之间的2 script包括jQuery的,包括一个用于magnificPopupmagnificPopup第一:

<script src="jquery-1.11.1.min.js"></script> 
<script src="magnific-popup.min.js"></script> 
<script type="text/javascript"> 
    var j1111 = jQuery.noConflict() ; 
</script> 
<script type="text/javascript" src="jquery-1.10.2.min.js"></script> 
<script type="text/javascript" src="bootstrap.min.js"></script> 
<script type="text/javascript"> 
    $(document).ready(function() { 
     j1111.magnificPopup(/* ... */) ; 
    }); 
</script> 
+0

现在是工作的人。谢谢! = D我不知道为什么,但它根本不起作用! – celsomtrindade

0

使用require.js并做出力所能及的模块相关的必要的jQuery的版本。例如:

require.config({ 
    enforceDefine: true, 
    baseUrl: '/js', 
    shim: { 
    '[email protected]': { 
     exports: '$' 
    }, 
    '[email protected]': { 
     exports: '$' 
    }, 
    '[email protected]': { 
     deps: [ 'jquery' ], // use jQuery 2.1.1 ! 
     exports: '$'  // need to export something.... so... export jQuery! 
    }, 
    'magnific': { 
     deps: [ '[email protected]' ], 
     exports: '$.fn.magnificPopup' 
    } 
    }, 
    paths: { 
    '[email protected]': 'http://code.jquery.com/jquery-1.11.1.min', // or a CDN... 
    '[email protected]': 'lib/jquery.min',  // local copy!, 
    '[email protected]': 'lib/bootstrap.min', // local copy! 
    'magnific': 'http://dimsemenov.com/plugins/magnific-popup/dist/jquery.magnific-popup.min' 
    }, 
    map: { 
    '*': { 
     'jquery': '[email protected]', 
     'bootstrap': '[email protected]' 
    } 
    } 
}); 

然后,仅仅需要你的jQuery库

require(['jquery', '[email protected]', '[email protected]', 'magnific'], function ($, $1, $2) { 
    console.log($.fn.jquery, $.fn.magnificPopup); 
    console.log($1.fn.jquery, $1.fn.magnificPopup); 
    console.log($2.fn.jquery, $2.fn.magnificPopup); 
}); 

其中,当然,会导致正确的输出

2.1.1 undefined 
1.11.1 function (n){_();var i=e(this);if("string"==typeof n)if("open"===n){var o,r=b?i.data("magnificPopup"):i[0].magnificPopup,a=parseInt(arguments[1],10)||0;r.items?o=r.items[a]:(o=i,r.delegate&&(o=o.find(r.delegate)),o=o.eq(a)),t._openClick({mfpEl:o},i,r)}else t.isOpen&&t[n].apply(t,Array.prototype.slice.call(arguments,1));else n=e.extend(!0,{},n),b?i.data("magnificPopup",n):i[0].magnificPopup=n,t.addGroup(i,n);return i} 
2.1.1 undefined 
+0

稍后会研究这个..因为我对这种事情很陌生,我认为可能对我有帮助= D谢谢 – celsomtrindade