2014-07-09 35 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