0

2 つの jquery/javascript コードがありますが、それらをマージできませんでした。機能の1つが無効になるたびに。コードをマージするにはどうすればよいですか。助けてください、ありがとう。

最初のファイル:

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

2 番目のファイル:

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 機能と 1 つのWannabe Ready 機能があります。1 回の呼び出しでコードを書き直しました。試してみる:

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また、 MooTools や Prototype などの別の JavaScript ライブラリを使用していない限り、実際には必要ありません。Superfish のようなプラグインは、Conflict と呼ばない理由にはなりません。競合がなければ$、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("...");
   }
});

最初のファイルは 2 番目のファイル内の関数を使用するため、最初に 2 番目のファイルをインポートする必要があります。

于 2012-11-30T16:17:40.240 に答える