Почему включение prototype.js нарушает функционирование jquery bbq? - PullRequest
1 голос
/ 18 января 2012

у меня есть:

    <!DOCTYPE html>
<html>
<head>

    <title></title>


<link rel="stylesheet" type="text/css" href="/temp/css/menu.css" />

<link rel="stylesheet" type="text/css" href="/temp/css/bottomchatdiv.css" />

<link rel="stylesheet" type="text/css" href="/temp/css/centercontent.css" />

<link rel="stylesheet" type="text/css" href="/temp/css/basics.css" />


    <script type="text/javascript" src="jquery-1.7.js"></script>

<script type="text/javascript" src="jquery.ba-bbq.js"></script>

<script type="text/javascript" src="jquery.ba-bbq-addtl.js"> </script>

<script type="text/javascript" src="prototype.js"></script>

<script type="text/javascript">
function getusto(anchorid) {
  $(anchorid).scrollTo();
} 
</script>

<script type="text/javascript" src="hide&show.js">

</script>




</head>
<body >


<div class="bbq">
  <div class="bbq-nav bbq-nav-top menu">
   <a class="mainitem menu_links" href="">Welcome</a>   <br> 

<a class="menu_links" href="#" onclick="getusto('welcome'); return false;">Welcome</a><br> 
<a class="menu_links" href="#" onclick="getusto('guidelines'); return false; ">Guidelines</a> 

<br>  
<hr style="width:48%"/>
<br>  



<a class="mainitem menu_links" href="#Regular-Visitors-&-Ops.html">Regulars & Ops</a> <br>

</div>

<br>  

<div class="bbq-content centercontent">

    <!-- This will be shown while loading AJAX content. You'll want to get an image that suits your design at http://ajaxload.info/ -->
        <div class="bbq-loading" style="display:none;">
      <img src="/shell/images/ajaxload-15-white.gif" alt="Loading"/> Loading content...
    </div>

    <!-- This content will be shown if no path is specified in the URL fragment. -->
    <div class="bbq-default bbq-item">

default welcome text here.

    </div>

  </div>


</div>


</body>
</html>

Теперь проблема в том, что обычные посетители - & - Ops.html страница не загружается, но она загружается! Поэтому я возился со своими отменами, пока не обнаружил, что не включая prototype.js, эта ссылка работает через jquery bbq.

Что дает? Как я могу получить и prototype.js & jquery барбекю сосуществовать? Мне нужны оба для разных вещей ..

чтобы запустить и запустить это, вам нужен дополнительный файл Regular-Посетители - & - Ops.html в том же каталоге, скажем:

<!DOCTYPE html>
<head>
</head>
</body>
this is the additional file.
</body>
</html>

Как и jquery, два сценария jquery bbq (я сам назвал один), & prototype.js.

Теперь, если вы это настроите - прототип на вынос и ссылка «Обычные посетители» (...) работает. Проблема в том, что я использую prototype.js. либо как мне заставить эти два работать, или проще, как я реализую функцию scrollTo (я не могу использовать якоря из-за того, что jquery bbq переключает якоря / хэши (например, "#welcome" in "index.html # добро пожаловать ") БЕЗ ИСПОЛЬЗОВАНИЯ PROTOTYPE.JS? должно быть одно право?

Ответы [ 2 ]

5 голосов
/ 18 января 2012

Включая prototype.js после jQuery, Prototype переопределит значение глобальной переменной $. Вам просто нужно использовать:

var $j = jQuery.noConflict();

Затем вы можете использовать $j вместо $ в контекстах jQuery и $ для контекстов прототипов. Вот документация: http://api.jquery.com/jQuery.noConflict/.

4 голосов
/ 18 января 2012

jQuery и Prototype используют символ $, поэтому они будут конфликтовать.

Если вы хотите использовать их вместе, вам нужно использовать метод jQuery noConflict () , чтобы вернуть псевдоним $ обратно в Protoype

Существует также scrollTo jQuery плагин

...