jQuery和MooTools冲突
好的,通过在jQuery脚本的顶部添加以下内容,我让jQuery与MooTools一起使用一个脚本:jQuery和MooTools冲突,jquery,mootools,conflict,Jquery,Mootools,Conflict,好的,通过在jQuery脚本的顶部添加以下内容,我让jQuery与MooTools一起使用一个脚本: var $j = jQuery.noConflict(); 然后更换每个: $( 与 但是,如何让MooTools喜欢使用jQuery的以下脚本 提前感谢您的任何意见 特蕾西 //淡入内容查看器:通过JavaScript工具包:http://www.javascriptkit.com var fadecontentviewer={ CSSZ指数:100, 淡入淡出:功能($allconten
var $j = jQuery.noConflict();
然后更换每个:
$(
与
但是,如何让MooTools喜欢使用jQuery的以下脚本
提前感谢您的任何意见
特蕾西
//淡入内容查看器:通过JavaScript工具包:http://www.javascriptkit.com
var fadecontentviewer={
CSSZ指数:100,
淡入淡出:功能($allcontents、togglerid、selected、speed){
var selected=parseInt(selected)
变量$togglerdiv=$(“#”+togglerid)
var$target=$allcontents.eq(选中)
if($target.length==0){//如果此索引位置不存在任何内容(即:源自冗余分页链接)
警报(“页码“+所选+”!”处不存在内容)
返回
}
if($togglerdiv.attr('lastselected')==null | | parseInt($togglerdiv.attr('lastselected'))!=selected){
变量$toc=$(“#”+togglerid+“.toc”)
变量$selectedlink=$toc.eq(已选)
$(“#”+togglerid+“.next”).attr('nextpage',(选中我不知道MooTools提供的兼容模式,但一个简单的方法应该是用$j(
或jQuery)替换脚本中出现的所有$(
)(
当您有使用$
的jQuery特定代码时,最简单的方法是用以下代码包装代码:
// Disable the $ global alias completely
jQuery.noConflict();
// For jQuery scripts
(function($){
// set a local $ variable only available in this block as an alias to jQuery
... here is your jQuery specific code ...
})(jQuery);
// For Mootols scripts
(function($){
// set a local $ variable only available in this block as an alias
// to Mootools document.id
... here is your Mootools specific code ...
})(document.id);
请参见上的第二个示例。将$
替换为$jQuery
,它应该可以工作。与您已经做的相同…将$(
替换为$j(
)这不起作用,因为并非所有的$都像$一样设置(因此您可以简单地添加一个“j”)在两者之间。有些是$toc$target$selectedlink.ect…不是美元符号/左括号,而是美元符号/名称。如果我加上一个“j”在那里,它真的把事情搞砸了。我觉得自己像个傻瓜!我做到了,把其他的$'names'放在一边,它成功了!我会哭的!但是,如果没有Dimitar Christoff的回答,这将不起作用,因为不管怎样,它是凌驾于MooTools之上的。让2个jQuery脚本与1个MooTools脚本一起愉快工作的唯一方法是在所有3个脚本中重新分配$!您可以使用此语法var myElement2=document.id('myElement');
同样的情况反过来是正确的,即如果已经定义,mootools将不会接管$,但将恢复为document.id(从v1.2.1开始)。然后,您可以应用相同的闭包,但使用document.id
而不是jQuery作为$Dimitar的参数,这是正确的。我必须更改所有3个脚本以使它们工作(仅更改1个脚本不工作)。添加var$j=jQuery.noConflict()对于JQuery脚本,&将var$=document.id;添加到MooTools脚本,&现在它们都可以愉快地一起工作。如果没有你的评论,这将永远不会奏效,建议使用v1.2.1谢谢你!!Vincent,无论出于什么原因,我在上面粘贴的脚本上没有效果。它在我添加var$j=JQuery.noConflict()的另一个脚本上起作用;但不是在上面的1中。但我很高兴知道关于它何时起作用的简短提示。我在回答中包括了Dimitar解决方案,以向Mootools开发人员澄清一点
//Fade In Content Viewer: By JavaScript Kit: http://www.javascriptkit.com
var fadecontentviewer={
csszindex: 100,
fade:function($allcontents, togglerid, selected, speed){
var selected=parseInt(selected)
var $togglerdiv=$("#"+togglerid)
var $target=$allcontents.eq(selected)
if ($target.length==0){ //if no content exists at this index position (ie: stemming from redundant pagination link)
alert("No content exists at page number "+selected+"!")
return
}
if ($togglerdiv.attr('lastselected')==null || parseInt($togglerdiv.attr('lastselected'))!=selected){
var $toc=$("#"+togglerid+" .toc")
var $selectedlink=$toc.eq(selected)
$("#"+togglerid+" .next").attr('nextpage', (selected<$allcontents.length-1)? selected+1+'pg' : 0+'pg')
$("#"+togglerid+" .prev").attr('previouspage', (selected==0)? $allcontents.length-1+'pg' : selected-1+'pg')
$target.css({zIndex: this.csszindex++, visibility: 'visible'})
$target.hide()
$target.fadeIn(speed)
$toc.removeClass('selected')
$selectedlink.addClass('selected')
$togglerdiv.attr('lastselected', selected+'pg')
}
},
setuptoggler:function($allcontents, togglerid, speed){
var $toc=$("#"+togglerid+" .toc")
$toc.each(function(index){
$(this).attr('pagenumber', index+'pg')
})
var $next=$("#"+togglerid+" .next")
var $prev=$("#"+togglerid+" .prev")
$next.click(function(){
fadecontentviewer.fade($allcontents, togglerid, $(this).attr('nextpage'), speed)
return false
})
$prev.click(function(){
fadecontentviewer.fade($allcontents, togglerid, $(this).attr('previouspage'), speed)
return false
})
$toc.click(function(){
fadecontentviewer.fade($allcontents, togglerid, $(this).attr('pagenumber'), speed)
return false
})
},
init:function(fadeid, contentclass, togglerid, selected, speed){
$(document).ready(function(){
var faderheight=$("#"+fadeid).height()
var $fadecontents=$("#"+fadeid+" ."+contentclass)
$fadecontents.css({top: 0, left: 0, height: faderheight, visibility: 'hidden'})
fadecontentviewer.setuptoggler($fadecontents, togglerid, speed)
setTimeout(function(){fadecontentviewer.fade($fadecontents, togglerid, selected, speed)}, 100)
$(window).bind('unload', function(){ //clean up
$("#"+togglerid+" .toc").unbind('click')
$("#"+togglerid+" .next", "#"+togglerid+" .prev").unbind('click')
})
})
}
}
// Disable the $ global alias completely
jQuery.noConflict();
// For jQuery scripts
(function($){
// set a local $ variable only available in this block as an alias to jQuery
... here is your jQuery specific code ...
})(jQuery);
// For Mootols scripts
(function($){
// set a local $ variable only available in this block as an alias
// to Mootools document.id
... here is your Mootools specific code ...
})(document.id);