2009-07-17 4 views
1

하나의 js 파일에 몇 가지 함수를 결합하려고합니다. 난 아주 새로운 jquery에, 지금은 별도의 파일에 대한 작업 (Drupal에 대한 작업) 다른 페이지에서 호출되고있어,하지만 문자열이 너무 작아서 모든 것들을 결합하는 것이 가장 좋을 것입니다 script.js 파일jquery 함수를 하나의 파일로 결합하는 데 도움이됩니다.

(... 내가 스택 오버 플로우 here에 발견하고 조금 변경했습니다이 하나, 어쩌면 이것이 내가 실수를 한 곳이다)

$(document).ready(function() { 
    switches = $('#na-paises-list > li'); 
    slides = $('#na-paises-images > div'); 
    switches.each(function(idx) { 
      this.slide = slides[idx]; 
     }).click(function(){$(this).addClass('selected'); $(this.slide).unbind();}).hoverIntent(paisesOver,paisesOut); 
}); 

function paisesOver(){ $(this).addClass('active'); $(this.slide).fadeIn(); } 
function paisesOut(){ switches.removeClass('active'); slides.fadeOut('fast'); } 

: 여기

는 함수입니다

두번째 :

$(document).ready(function() { 
    $("#na-areas-actividade div").tabs({ fx: { opacity: 'toggle', duration: 'fast' }, cookie: { expires: 30 } }); 
}); 

그리고 셋째

$(document).ready(function() { 
    $("#agencias div").tabs({ fx: { opacity: 'toggle', duration: 'fast' }, cookie: { expires: 30 } }); 
}); 
,

두 번째 또는 세 번째 기능을 첫 번째 기능과 결합하려고 시도 할 때마다 문제가 발생하고 그 중 하나만 작동합니다. 그리고이 같은 문서 준비 함수 내에서 기능을 배치하고 있습니다 :

$(document).ready(function() { 
    switches = $('#na-paises-list > li'); 
    slides = $('#na-paises-images > div'); 
    switches.each(function(idx) { 
      this.slide = slides[idx]; 
     }).click(function(){$(this).addClass('selected'); $(this.slide).unbind();}).hoverIntent(paisesOver,paisesOut); 

$("#na-areas-actividade div").tabs({ fx: { opacity: 'toggle', duration: 'fast' }, cookie: { expires: 30 } }); 

$("#agencias div").tabs({ fx: { opacity: 'toggle', duration: 'fast' }, cookie: { expires: 30 } }); 

}); 

function paisesOver(){ $(this).addClass('active'); $(this.slide).fadeIn(); } 
function paisesOut(){ switches.removeClass('active'); slides.fadeOut('fast'); } 

올바른 방향으로 어떤 도움이나 포인터를이 문제에 대한 자세한 정보를 원하시면 매우 환영합니다.

+0

당신은 아마도, 온라인 데모 페이지에 대한 링크를 포함 할 수 있을까요? – montrealist

+0

변경 사항에 약간의 오류가있을 수 있습니다. HTML 샘플을 게시 할 수 있습니까? – sixthgear

+0

또한 이러한 코드 스 니펫 (snippet)이 사용자를 위해 무엇을 기대하는지 설명해야합니다. 예상되는 결과는 무엇입니까? – sixthgear

답변

1

나는 거의 (거의) 수정되지 않은 상태에서 코드를 관리 할 수있었습니다. 몇 가지.

  1. hoverIntent은 jQuery 메서드 또는 이벤트 처리기가 아닙니다. 이것을 hover으로 변경했습니다.
  2. 탭 위젯에서 쿠키 옵션을 사용하려면 jQuery 쿠키 플러그인에 연결되어 있는지 확인하십시오. 플러그인을 찾으러 가고 싶지 않았기 때문에 옵션을 제거했습니다.

$(document).ready(function() { 

    switches = $('#na-paises-list > li'); 
    slides = $('#na-paises-images > div'); 

    switches.each(function(idx) { 
     this.slide = slides[idx]; 
    }).click(function(){ 
     $(this).addClass('selected'); 
     $(this.slide).unbind(); 
    }).hover(paisesOver,paisesOut); 

    $("#na-areas-actividade div").tabs({ 
     fx: { 
      opacity: 'toggle', 
      duration: 'fast' 
     }}); 

    $("#agencias div").tabs({ 
     fx: { 
      opacity: 'toggle', 
      duration: 'fast' 
     }});  
}); 

function paisesOver() { 
    $(this).addClass('active'); 
    $(this.slide).fadeIn(); 
} 

function paisesOut() { 
    switches.removeClass('active'); 
    slides.fadeOut('fast'); 
} 
+0

작성자가 사용할 수있는 hoverIntent 플러그인이 있습니다. http://cherne.net/brian/resources/jquery.hoverIntent.html – SolutionYogi

+0

또한 승리를위한 정성스러운 코드 레이아웃. – sixthgear

+0

아, 그 말이 더 합리적입니다. 그렇다면 질문자가 필수 플러그인에 연결하지 않는 한 내가 엉망입니다. – sixthgear

관련 문제