从javascript调用Jquery函数

时间:2009-08-28 08:34:15

标签: javascript jquery

如何从javascript调用jQuery函数?

 //jquery
 $(function() {

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

 //just js
 function js_fun () {

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

9 个答案:

答案 0 :(得分:16)

你不能。

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
}

答案 1 :(得分:15)

是的,你可以(这是我理解原始问题的方式)。 我就是这样做的。只需将其与外部环境联系起来。 例如:

//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
}

我在尝试访问已实例化的对象的方法时遇到了同样的问题 仅在DOM对象上准备就绪。作品。我的例子:

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!
}

答案 2 :(得分:11)

var jqueryFunction;

$().ready(function(){
    //jQuery function
    jqueryFunction = function( _msg )
    {
        alert( _msg );
    }
})

//javascript function
function jsFunction()
{
    //Invoke jQuery Function
    jqueryFunction("Call from js to jQuery");
}

http://www.designscripting.com/2012/08/call-jquery-function-from-javascript/

答案 3 :(得分:5)

    <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>

答案 4 :(得分:1)

jQuery函数就像JavaScript函数一样被调用。

例如,使用jQuery addClass函数动态地将类“red”添加到id为“orderedlist”的document元素:

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

与调用常规函数的常规JavaScript相反:

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

答案 5 :(得分:1)

我做到了......

我只是写

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

而不是

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

答案 6 :(得分: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++;
}

答案 7 :(得分:0)

//调用jquery函数的javascript函数

//在javascript部分

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

答案 8 :(得分:0)

<script>
  $.myjQuery = function() {
    alert("jQuery");
  };

  $(document).ready(function() {
    alert("Welcome!");
  });

  function display() {
    $.myjQuery();
  };

</script>

<input type="button" value="submit" onclick=" display();">

希望这对你有用!