我有一个运行n Vivvo CMS的网站。它主要基于Prototype。我想在网站上实现这个功能,但是基于jQuery。虽然我使用jQuery.noconflict,它仍然无法运行。
我想将以下代码从jQuery转换为Prototype,有人可以帮助我吗?
$(document).ready(function(){
$(window).scroll(function(){
// get the height of #wrap
var h = $('#wrap').height();
var y = $(window).scrollTop();
if( y > (h*.25) && y < (h*.75) ){
// if we are show keyboardTips
$("#tips").fadeIn("slow");
} else {
$('#tips').fadeOut('slow');
}
});
});
谢谢。
答案 0 :(得分:6)
你当然可以使用jQuery.
而不是$.
,但这是一个非常多的额外打字(:))。
在我必须混合Prototype和jQuery的极少数情况下,我更喜欢像这样处理它。
将jQuery置于noConflict
模式
<script>jQuery.noConflict()</script>
然后将jQuery代码包装在:
中(function($) {
//Now I can do jQuery stuff and use the $
$(document).ready( function() {
});
})(jQuery)
您正在做的是创建一个调用自身的anonymous function,并将jQuery
对象作为参数传递给函数。
美妙之处在于函数内部的所有内容都只是本地 ,所以你不必担心函数内部的$
stomping整个Prototype 和您不必忍受将jQuery代码转换为Prototype的痛苦。