Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery ui 我能';t从privat方法读取jqueryui小部件工厂选项_Jquery Ui_Widget_Factory - Fatal编程技术网

Jquery ui 我能';t从privat方法读取jqueryui小部件工厂选项

Jquery ui 我能';t从privat方法读取jqueryui小部件工厂选项,jquery-ui,widget,factory,Jquery Ui,Widget,Factory,我是jQueryUI widget工厂的新手,因此我的问题可能很愚蠢。 我想创建一个ajax工具提示,在这里我可以通过一个选项设置ajax调用的url,但是这个选项在包含ajax调用的_mouseOver方法中是不可读的 在我设置时: $(“.text”).tooltip({url:“某物”}) 有人能帮帮我吗。在这种情况下,\u mouseOver函数的“this”上下文是元素,而不是jquery小部件。这就是为什么你得不到options.url 您可以尝试使用以下代码作为开始: _creat

我是jQueryUI widget工厂的新手,因此我的问题可能很愚蠢。 我想创建一个ajax工具提示,在这里我可以通过一个选项设置ajax调用的url,但是这个选项在包含ajax调用的_mouseOver方法中是不可读的

在我设置时: $(“.text”).tooltip({url:“某物”})

有人能帮帮我吗。

在这种情况下,\u mouseOver函数的“this”上下文是元素,而不是jquery小部件。这就是为什么你得不到options.url

您可以尝试使用以下代码作为开始:

_create: function() {
      alert(this.options.url); //it works
      this.element.tooltip = this;
      this.element.bind({
        mouseenter: this._mouseOver
      });
    },  
_mouseOver: function() { 
  alert(this.tooltip.options.url); //it dosen't works
},
它没有经过测试。

在本例中,\u mouseOver函数的“this”上下文是元素,而不是jquery小部件。这就是为什么你得不到options.url

(function ($) {
    $.widget("ui.tooltip", {
        self: null,
        options: {
            url: ''
        },
        _create: function () {
            self = this;
            self.element.bind({
                mouseenter: self._mouseOver
            });
        },
        _mouseOver: function () {
            alert(self.options.url); // it should work
        }
    });
})(jQuery);
您可以尝试使用以下代码作为开始:

_create: function() {
      alert(this.options.url); //it works
      this.element.tooltip = this;
      this.element.bind({
        mouseenter: this._mouseOver
      });
    },  
_mouseOver: function() { 
  alert(this.tooltip.options.url); //it dosen't works
},
它没有经过测试

(function ($) {
    $.widget("ui.tooltip", {
        self: null,
        options: {
            url: ''
        },
        _create: function () {
            self = this;
            self.element.bind({
                mouseenter: self._mouseOver
            });
        },
        _mouseOver: function () {
            alert(self.options.url); // it should work
        }
    });
})(jQuery);
在mouseOver中使用“this”表示事件函数中的当前对象,而不是小部件本身。您应该创建一个变量并将小部件(this)放在上面,以便能够在任何事件或方法中使用它选项。 在jQuery中使用$.each()函数时,您会发现相同的行为

在mouseOver中使用“this”表示事件函数中的当前对象,而不是小部件本身。您应该创建一个变量并将小部件(this)放在上面,以便能够在任何事件或方法中使用它选项。
在jQuery中使用$.each()函数时,您会发现相同的行为。

不起作用,但是:that:null,_create:function(){that=this;…}{mouseOver:function(){alert(that.options.url);…不起作用,但是:that:null,_create:function(){that=this;…}{mouseOver:function(){alert(that.options.url)…欢迎使用堆栈溢出!请解释此代码解决问题的原因,而不是仅发布一段代码。没有解释,这不是答案。欢迎使用堆栈溢出!请解释此代码解决问题的原因,而不是仅发布一段代码。没有解释,这不是答案。