0

我有两个 jquery/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
 });
 });

第二个文件:

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("...");
    }
});

我收到“您的帖子没有太多上下文来解释代码部分;请更清楚地解释您的场景。” 信息。有字数限制吗?

4

2 回答 2

0

你实际上有3 个Ready 功能和一个wannabe ready 功能。我已经重写了您的代码,因为它应该在一个准备好的调用中。试试看:

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]

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

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

了解更多信息:

于 2012-11-30T16:38:48.220 回答
-1
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("...");
   }
});

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

于 2012-11-30T16:17:40.240 回答