【问题标题】:Jquery and Regular Javascript Interference [closed]Jquery 和常规 Javascript 干扰 [关闭]
【发布时间】:2010-12-01 18:55:01
【问题描述】:

我在 joomla 中构建了一个站点,我最近为其购买了一个内容滑块,它是用普通的旧 Javascript 构建的,然后我构建了一些内容框,上面有 Jquery 提供的动画。现在动画工作,但滑块没有。我想知道如何让页面同时使用两者。这是我的代码

 <script src="http://code.jquery.com/jquery-1.4.4.js"></script>
<script>jQuery.noConflict();
$(document).ready(function() { 
  //settings 
  var opacity = 0.5, toOpacity = 1, duration = 350; 
  //set opacity ASAP and events 
  $('.opacity').css('opacity',opacity).hover(function() { 
      $(this).fadeTo(duration,toOpacity); 
    }, function() { 
      $(this).fadeTo(duration,opacity); 
    } 
  ); 
});
</script>

【问题讨论】:

  • jQuery is Javascript,它们将(应该)一起工作而不会出现问题。但是,如果没有您正在使用的代码示例,我们将无济于事。
  • 如果您删除 jquery 代码,那么滑块是否可以工作?如果是这样,您可能有一些函数名称的 alt。全局变量名互相干扰
  • 是的,当我删除 jquery 时,滑块确实可以工作。我把代码贴出来给大家看看
  • 当您调用noConflict 时,您不能使用$ 函数,除非您将其别名为(function($){...})(jQuery);,简单的解决方法是将所有$ 更改为jQuery

标签: javascript jquery merge


【解决方案1】:

在加载库后尝试调用它:

jQuery.noConflict();

另外,尝试用这个替换你的 jQuery 就绪函数:

jQuery(document).ready(function($){

这会将 $ 快捷方式传递到 jQuery 代码块中,但仍应避免在它之外发生冲突。

您可以在 jQuery 文档中阅读主题 here

【讨论】:

  • 我插入了这段代码,它可以工作,但现在我的 Jquery 不想播放它的动画
  • 我已更新以尝试修复您。如果这不起作用,请尝试用 jQuery 替换您在其中执行动画的 jQuery $ 快​​捷方式。例如,jQuery.animate(//animate stuff);
【解决方案2】:

您是否检查过可能发生的潜在冲突(代码中的 $)?你可以在无冲突模式下运行你的 jquery 脚本来解决这个问题

http://api.jquery.com/jQuery.noConflict/

【讨论】:

  • 我试过了,但现在 jquery 动画不起作用。是不是因为我的 head 标签中的代码位置太低了?
【解决方案3】:

根据 jQuery docs on jQuery.noConflict...

说明:放弃 jQuery 对 $ 变量的控制。

这意味着在你调用它之后,你必须使用jQuery而不是$来进行jQuery调用。

例如,将$(document).ready(function() { ... }); 更改为jQuery(document).ready(function() { ... });

【讨论】:

  • 哦,好吧,我要对代码中的所有 $ 都这样做吗?
  • 太棒了!我继续并改变了它们,它起作用了。感谢 renesis 和所有帮助过的人
  • @Carlos - 如果他们对您有帮助,您可以投票或接受答案!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-02
  • 1970-01-01
  • 2023-01-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多