在Jquery中调用函数内的函数

时间:2015-02-07 10:46:35

标签: javascript jquery image

我在按钮调用时直接调用函数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>

我怎样才能调用这个函数???

3 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:2)

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

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

        };
}();

正如我所说,这不是理想的,但它会起作用。更好的选择是向按钮添加事件监听器。

希望它有所帮助。

答案 2 :(得分:2)

您也可以喜欢

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

按钮链接此

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