Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery和MooTools冲突_Jquery_Mootools_Conflict - Fatal编程技术网

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

好的,通过在jQuery脚本的顶部添加以下内容,我让jQuery与MooTools一起使用一个脚本:

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);