2010-08-31 4 views
2
<blink> 
<script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/prototype/1.6.1/prototype.js'></script> 
<script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/scriptaculous/1.8.2/scriptaculous.js'></script> 
<script type='text/javascript' src='/lightview.js'></script> 
<script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js'></script> 
<script type="text/javascript" src="/photography/js/scrollable.js"></script> 
<script> 
// Use jQuery via jQuery(...) 
jQuery(document).ready(function(){ 
jQuery("div.scrollable").hide(); 
}); 

// Use Prototype with $(...), etc. 
$('div.box').hide(); 
</script> 
</blink> 

Мой код не работает im not sure why? любой совет?JQuery и Protoype Conflict

ответ

4

Вы должны использовать jQuery.noConflict() освободить $ назад к прототипу, как это:

jQuery.noConflict(); //restore $ to prototype 
jQuery(document).ready(function(){ 
    jQuery("div.scrollable").hide(); 
}); 

$('div.box').hide(); 

Хотя Jquery может сделать показать/скрыть, так что вы, возможно, не нужны обе библиотеки, в зависимости от того, что вы делаете (например, есть плагины lightbox для jQuery и прокручиваемые плагины для прототипа, поэтому вы можете пойти в любом случае с использованием единой библиотеки для всего).

Вы также можете дать ему псевдоним из $ восстанавливающей вызова, он возвращает ссылку на JQuery, так что вы можете сделать это:

var $j = jQuery.noConflict(); //restore $ to prototype 
$j(function(){ 
    $j("div.scrollable").hide(); 
}); 

$('div.box').hide(); 
0

После того, как у меня была такая же проблема, используя прототип и JQuery на на той же странице, и указав функцию jQuery.noConflict(), но мои вещи не затухали вправо/нет (вещи были странными и иногда работали только с первой анимацией). Когда я отключил Prototype, мой код jQuery сделал именно то, что он должен был делать. Я пришел к выводу, что jQuery и Prototype имеют одинаковые имена функций, и это вызывает конфликт.

Временно отключите Prototype и проверьте, работает ли ваш код jQuery так, как ожидалось.