在Jquery中调用函数中的函数

Call a function within function in Jquery

本文关键字:函数 Jquery 调用      更新时间:2023-09-26

在按钮调用中直接调用函数demo1()时遇到问题。请参阅代码

var FormImageCrop = function (){
    var demo1 = function() {
        var jcrop_api;
        $('#demo1').Jcrop({
          onChange:   showCoords,
          aspectRatio: 4 / 3
        },function(){
          jcrop_api = this;
        jcrop_api.setSelect([0,0,3200,2400]);
        });
        $('#coords1').on('change','input',function(e){
          var x1 = $('#x11').val(),
              x2 = $('#x12').val(),
              y1 = $('#y11').val(),
              y2 = $('#y12').val();
          jcrop_api.setSelect([x1,y1,x2,y2]);
        });
        function showCoords(c)
        {
             $('#x11').val(c.x);
            $('#y11').val(c.y);
            $('#x12').val(c.x2);
            $('#y12').val(c.y2);
            $('#w1').val(c.w);
            $('#h1').val(c.h);
        };
    }
    return {
        init: function () {
            if (!jQuery().Jcrop) {;
                return;
            }
            demo1();
        }
    };
}();

我想点击按钮调用这个函数如<button onclick="demo1()">Click it</button>

如何调用此函数???

var myObject = {
    firstName:"John",
    lastName: "Doe",
    fullName: function () {
        return this.firstName + " " + this.lastName;
    }
}
myObject.fullName();         // Will return "John Doe"

仅此而已。你可以从这里阅读整个教程http://www.w3schools.com/js/js_function_invocation.asp

或者你可以试试这个

var my_foo= function foo() {
    // do something
}
myfoo();

function bar() {
    // do something
}
bar();

在HTML中调用函数的唯一方法是函数本身在全局窗口对象上公开。我不一定要这样做,但如果你仍然想调用按钮的onlick属性上的函数,你可以这样做:

 var FormImageCrop = function (){
        window.demo1 = function() {
            ...
            ...
        }
        return {
            init: function () {
                ...
                ...
                window.demo1();
            }
        };
}();

正如我所说,这并不理想,但它会起作用。一个更好的选择是在按钮中添加一个事件侦听器。

希望能有所帮助。

你也可以喜欢

var FormImageCrop = function (){
        window.demo1 = function(val) {
           alert(val);
        }
        return {
            init: function () {
                window.demo1();
            }
        };
}();

和按钮链接这个

<button onclick="demo1('abc')">Click It</button>