2014-01-24 2 views
0

두 개의 파일, 즉 주 및 이벤트가 있습니다. 한 파일에서 다른 파일로 일부 함수를 호출하려고합니다. 뭐가 문제requireJS를 사용하여 다른 파일에서 함수를 호출하는 방법

define(["jquery"], function() { 

    // Call 
    var box = $('.box'); 
    return function functionCall(){ 
     box.addClass('visible'); 
    } 
}); 

가 도움을 anyboyd 수

require(['app/main'], function(call) { 
    // click event respond test 
    document.body.addEventListener("click", function(e) { 
     var target = e.target; 
     if (target.hasClass === "call"){ 
      functionCall()(); 
     } 
    }); 
}); 

주요

이벤트 :

그래서,이는 모습입니다?

+0

다른 파일에 모듈이 필요하지만 정확히 무엇을 호출하려고하는지 알고 있습니다. – dcodesmith

+0

일부 요소를 클릭 한 후 다른 파일에서 함수 호출 - 간단 – Lukas

답변

3

주 :

define(["jquery"], function($) { 

    var main = { 
     functionCall: function(){ 
      $('.box').addClass('visible'); 
     } 
    } 

    return main; 
}); 

이벤트 :

require(['jquery','app/main'], function($, main) { 

    $('body').on('click', function() { 
     if($(this).hasClass('call')){ 
      main.functionCall(); 
     } 
    }); 

}); 
+0

이것은 질문에 대한 답을 제공하지 않습니다. 비평하거나 저자의 설명을 요청하려면 게시물 아래에 의견을 남겨 둡니다. –

+0

내 나쁜, 당신이 게시 할 때 편집했다. – MamaWalter

+0

좋은, 작동 많은 thx 조언을 – Lukas

0

한 가지 방법은 함수를 호출 할 필요가이 코드를 추가하는 것입니다 require('pathToModuleOrModuleName').functionYouWantToCall()

을하지만이 경우 모듈 정의 또는 (이벤트의 '기본'으로) 처음에 필요한 기능을 호출해야하는 곳에서 다음을 추가하십시오.

call.functionName(); 
0

내 눈이 당신의 코드를 만들기 위해 나에게 간단한 변화를기만하지 않는 한이 대체하는 것이와

functionCall()(); 

: 함수 이후

call(); 

을 그 main 모듈 반환 모듈에 call으로 가져옵니다.이 코드는 define에 전달 된 콜백에서 이름을 지정했기 때문에 가져 왔습니다.

0

첫째 코드는 몇 가지 기본적인 문제를 당신이 함수 정의 내부 쿼리를 참조하고 다음 코드

define(["jquery"], function() { 

에서

있습니다. 내가 먼저 호출하는 함수 후 수행)을 (

define(["jquery"], function($) { 

이 두 번째로, 무엇보다 같은 함수 선언에 정의 된 jQuery를지도해야한다고 생각?

if (target.hasClass === "call"){ 
    functionCall()(); 
} 

해당 통화에서 트레일 링()을 제거하십시오. 그냥 functionCall()이어야합니다.

+0

내 기본/구성 파일에서 jquery 매핑 된 및 쓰기 실수, 내 함수는 corectly ... 정의되어 있습니다 ... :) – Lukas

관련 문제