2009-08-28 8 views
9

어떻게 자바 스크립트에서 jQuery 함수를 호출 할 수 있습니까?자바 스크립트에서 Jquery 함수 호출

//jquery 
$(function() { 

     function my_fun(){ 
       /.. some operations ../ 
     } 
}); 

//just js 
function js_fun() { 

     my_fun(); //== call jquery function 
} 
+1

당신은 그냥 전화에서? 구체적으로 무엇이 문제입니까? –

+0

jQuery 플러그인을 만들려고하십니까? 즉, 함수를 $ (foo) .your_function()으로 사용 하시겠습니까? – JorenB

+5

이 jQuery 대 JavaScript의 상황이 점점 악화되고 있습니다. –

답변

14

수 없습니다.

function(){ 

    function my_fun(){ 
      /.. some operations ../ 
    } 
} 

클로저입니다. my_fun()은 익명의 함수 안에서만 정의됩니다. 올바른 범위 수준 (예 : 전 세계)으로 신고 한 경우에만 my_fun()으로 전화 할 수 있습니다.

$(function() {/* something */})은 IIFE이며 DOM이 준비되면 즉시 실행됩니다. 해당 익명 함수 안에 my_fun()을 선언하면 나머지 스크립트가 "보는"것을 방지합니다. 물론

, 당신은 DOM이 완전히로드되면이 기능을 실행하려면 다음을 수행해야합니다

function my_fun(){ 
    /* some operations */ 
} 

$(function(){ 
    my_fun(); //run my_fun() ondomready 
}); 

// just js 
function js_fun(){ 
    my_fun(); //== call my_fun() again 
} 
+0

jquery에서 전역 함수를 선언하는 법을 알려 주실 수 있습니까? 몇 가지 예를 들으면 멋질 것입니다. –

+2

사실 나는 당신에게 예를 보여주었습니다. jQuery는 자바 스크립트의 일부입니다. Javascript에서는 예제와 같이 전역 함수를 정의합니다 (첫 번째 함수는 전역 적으로 선언됩니다). –

+0

작동하지 않습니다 – Imran

1

jQuery를 기능은 자바 스크립트 함수처럼 호출됩니다. 예를 들어

, 동적으로 jQuery를 addClass 기능을 사용하여 ID가 ​​"orderedlist"와 문서 요소에 클래스 "빨간색"추가 : 정규 함수를 호출하는 자바 스크립트의 정규 라인 반대로

$("#orderedlist").addClass("red"); 

:

var x = document.getElementById("orderedlist"); 

addClass()는 jQuery 함수이며 getElementById()는 JavaScript 함수입니다.

달러 기호 기능을 사용하면 jQuery addClass 함수를 사용할 수 있습니다.

유일한 차이점은 jQuery 예제가 jQuery 객체 $ ("# orderedlist")의 addclass 함수를 호출하고 일반 예제가 문서 객체의 함수를 호출한다는 것입니다. 코드

$(function() { 
// code to execute when the DOM is ready 
}); 

에서

은 DOM이 준비되었을 때 실행하는 코드를 지정하는 데 사용됩니다.

일반 JavaScript 코드에서 "jQuery 코드"가 무엇인지 구분하지 않습니다 (생각하는 것처럼).

질문에 대답하기 위해 평상시처럼 정의한 함수를 호출하십시오.

//create a function 
function my_fun(){ 
    // call a jQuery function: 
    $("#orderedlist").addClass("red"); 
} 

//call the function you defined: 
myfun(); 
0

내 문제는 내가 긴 각도에서보고되었다이었다

function new_line() { 
    var html= '<div><br><input type="text" value="" id="dateP_'+ i +'"></div>'; 
    document.getElementById("container").innerHTML += html; 

    $('#dateP_'+i).datepicker({ 
     showOn: 'button', 
     buttonImage: 'calendar.gif', 
     buttonImageOnly: true 
    }); 
    i++; 
} 
0

내가 그것을 만든 ...

난 그냥 대신

document.getElementById('container').innerHTML += html; 
12

jQuery('#container').append(html) 

쓰기 예 (이 내가 원래의 질문을 이해하는 방법입니다) 할 수 있습니다. 다음은 내가 그랬던 방법입니다. 그냥 외부 상황에 묶어 라. 예를 들어 : DOM에 을 인스턴스화 된 객체의 접근 방법을 시도 할 때

//javascript 

my_function = null; 

//jquery 
$(function() { 

     function my_fun(){ 
       /.. some operations ../ 
     } 
     my_function = my_fun; 
}) 

//just js 
function js_fun() { 
     my_function(); //== call jquery function - just Reference is globally defined not function itself 
} 

나는이 같은 문제가 발생 만 준비 객체. 공장. 내 예 :

MyControl.prototype = { 
    init: function { 
     // init something 
    } 
    update: function() { 
      // something useful, like updating the list items of control or etc.   
    } 
} 

MyCtrl = null; 

// create jquery plug-in 
$.fn.aControl = function() { 
    var control = new MyControl(this); 
    control.init(); 
    MyCtrl = control; // here is the trick 
    return control; 
} 

이제이 같은 간단한 것을 사용할 수 있습니다

function() = { 
    MyCtrl.update(); // yes! 
} 
0

// 자바 스크립트 함수 호출 JQuery와 기능

// 년을 자바 스크립트 부분

function js_show_score() 
{ 
    //we use so many javascript library, So please use 'jQuery' avoid '$' 
    jQuery(function(){ 
     //Call any jquery function 
     show_score(); //jquery function 
    });(jQuery); 
} 

// jQuery를 부분

jQuery(function(){ 
//Jq Score function  
    function show_score() 
    { 
     $('#score').val("10"); 
    } 
});(jQuery); 
3
<script> 

     // Instantiate your javascript function 
     niceJavascriptRoutine = null; 

     // Begin jQuery 
     $(document).ready(function() { 

      // Your jQuery function 
      function niceJqueryRoutine() { 
       // some code 
      } 
      // Point the javascript function to the jQuery function 
      niceJavaScriptRoutine = niceJueryRoutine; 

     }); 

    </script> 
+0

좋고 쉽습니다. 좋은 사람 –

+0

niceJavascriptRoutine()을 호출하면 오류가 발생합니다. 'niceJavascriptRoutine은 함수가 아닙니다.' – Atara

관련 문제