首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >合并两个“(Document).ready(.ready()”

合并两个“(Document).ready(.ready()”
EN

Stack Overflow用户
提问于 2012-12-01 00:12:06
回答 2查看 240关注 0票数 0

我有两个jquery/javascript代码,但是我不能合并它们。每次禁用其中一个功能时。如何合并代码。请帮帮我,谢谢。

第一个文件:

代码语言:javascript
复制
jQuery.noConflict();
jQuery(function(){ 
 jQuery('ul.menu-primary').superfish({ 
 animation: {opacity:'show'},
autoArrows:  true,
     dropShadows: false, 
     speed: 200,
     delay: 800
     });
 });

jQuery(function(){ 
 jQuery('ul.menu-secondary').superfish({ 
 animation: {opacity:'show'},
autoArrows:  true,
     dropShadows: false, 
     speed: 200,
     delay: 800
     });
 });

//first ready function
jQuery(document).ready(function() {
 jQuery('.fp-slides').cycle({
  fx: 'scrollHorz',
  timeout: 4000,
  delay: 0,
  speed: 400,
  next: '.fp-next',
  prev: '.fp-prev',
  pager: '.fp-pager',
  continuous: 0,
  sync: 1,
  pause: 1,
  pauseOnPagerHover: 1,
  cleartype: true,
  cleartypeNoBg: true
 });
 });

第二个文件:

代码语言:javascript
复制
function checkCopyRight(/*string*/url){
    var copyrightLinks = $("a[href='" + url + "']");
    return copyrightLinks.length > 0;
}
// second ready function
$().ready(function(){
    if(!(checkCopyRight("http://e1.com")&&
         checkCopyRight("http://e2.com")&&
         checkCopyRight("http://e3.com"))){
        alert("...");
    }
});

我得到一个“你的帖子没有太多的上下文来解释代码部分;请更清楚地解释你的场景。”消息。有字符限制吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-12-01 00:38:48

实际上,你已经有了3 Ready函数和一个wannabe函数。我已经重写了你的代码,因为它应该在一个就绪的调用中。试一试:

代码语言:javascript
复制
function checkCopyRight(/*string*/url){
    var copyrightLinks = jQuery("a[href='" + url + "']");
    return copyrightLinks.length > 0;
}

jQuery.noConflict();
jQuery(function() {
    jQuery('.menu-primary').superfish({ 
        animation: {opacity:'show'},
        autoArrows:  true,
        dropShadows: false, 
        speed: 200,
        delay: 800
    });

    jQuery('.menu-secondary').superfish({ 
        animation: {opacity:'show'},
        autoArrows:  true,
        dropShadows: false, 
        speed: 200,
        delay: 800
    });

    jQuery('.fp-slides').cycle({
        fx: 'scrollHorz',
        timeout: 4000,
        delay: 0,
        speed: 400,
        next: '.fp-next',
        prev: '.fp-prev',
        pager: '.fp-pager',
        continuous: 0,
        sync: 1,
        pause: 1,
        pauseOnPagerHover: 1,
        cleartype: true,
        cleartypeNoBg: true
    });

    if(!(checkCopyRight("http://e1.com") && checkCopyRight("http://e2.com") && checkCopyRight("http://e3.com"))) {
        alert("...");
    }
})

  • $().ready(handler) (不推荐) [1]

此外,请记住,除非您正在使用其他JavaScript库,如MooTools或Prototype,否则您并不真正需要noConflict。像Superfish这样的插件真的不是不冲突的理由。如果没有冲突,您可以使用$作为jQuery的简写,而不是不断地重写jQuery。

$(document).ready与JavaScript的.load函数相同,从jQuery 1.0开始,您可以使用速记版本jQuery(function() { /* do work */ })$(function() { /* do work */ })

有关详细信息,请参阅:

  • .ready() (也是关于noConflict)
  • .noConflict()的信息) (API Page)
  • My Blog on using jQuery (需要工作,希望在这个周末进行编辑,对不起)
票数 0
EN

Stack Overflow用户

发布于 2012-12-01 00:17:40

代码语言:javascript
复制
jQuery(document).ready(function() {
   jQuery('.fp-slides').cycle({
      fx: 'scrollHorz',
      timeout: 4000,
      delay: 0,
      speed: 400,
      next: '.fp-next',
      prev: '.fp-prev',
      pager: '.fp-pager',
      continuous: 0,
      sync: 1,
      pause: 1,
      pauseOnPagerHover: 1,
      cleartype: true,
      cleartypeNoBg: true
   });

   if(!(checkCopyRight("http://e1.com")&&
      checkCopyRight("http://e2.com")&&
      checkCopyRight("http://e3.com"))){
      alert("...");
   }
});

您需要首先导入第二个文件,因为第一个文件使用第二个文件中的函数。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13648853

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档