如何从jquery小部件函数中获取返回值

How to get a return value from a jquery widget function

本文关键字:函数 获取 返回值 小部 jquery      更新时间:2023-09-26

我已经编写了一个带有公共函数的jquery小部件

 $.widget("UI.MyWidget", {
        vars: {
            retvalue:0
                  },
        options: {
            Orgintop: 0,
            Orginleft: 0,
            Orginheight: 0,
            Orginwidth: 0
        },
        _create: function () {
            this._renderElement();
        },
        getControlValue: function () {
            this.vars. retvalue=45+5;
            return this.vars. retvalue;
        }
});

我需要从另一个脚本中调用这个公共函数getControlValue。我怎样才能调用它并获得返回值。我是小部件的新手。有谁能帮忙吗。

提前谢谢。

您可以在this.element.data()处设置getControlValue,从设置了this.data()集合返回命名函数到widget,widget可以通过引用设置widget的元素的.data()来调用。

$.widget("UI.MyWidget", {
  vars: {
    retvalue: 0
  },
  options: {
    Orgintop: 0,
    Orginleft: 0,
    Orginheight: 0,
    Orginwidth: 0
  },
  _create: function() {
    this.element.data("_getControlValue", this.getControlValue());
    // this._renderElement();
  },
  getControlValue: function() {
    var fn = function() {
      this.vars.retvalue = 45 + 5;
      return this.vars.retvalue;
    }
    return fn.bind(this)
  }
});
var widget = $("div").MyWidget();
console.log(widget.data()._getControlValue());
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://code.jquery.com/ui/1.12.0/jquery-ui.min.js" integrity="sha256-eGE6blurk5sHj+rmkfsGYeKyZx3M4bG+ZlFyA7Kns7E=" crossorigin="anonymous"></script>
<div></div>