jQuery小部件功能没有被调用

时间:2013-11-15 04:41:54

标签: javascript jquery inheritance jquery-widgets

更新 对不起那个冗长的愚蠢问题。我的选择器出了问题。忽略帖子!

我有一个具有公共功能的小部件。我通常可以称之为:

$("#mygrid").myGrid( "MyFunction", args );

问题:

但在某些情况下,该功能未被调用。

以下是一些琐事

  • 我的小部件源自我创建的另一个(基本)小部件。
  • 调用基本小部件时,相同的功能正常工作
  • 子窗口小部件中不会覆盖该函数。
  • 同一个函数适用于同一父级的另一个子窗口小部件 使用我之前提到的相同代码,除了名称 小部件和DOM元素。

现在,这里有一些重要信息。

问题小部件中的类似功能有效,当我进入调用时,我发现 jquery-ui.js 中以下函数中的两个调用都有所不同:

$.widget.bridge = function( name, object ) {
    var fullName = object.prototype.widgetFullName || name;
    $.fn[ name ] = function( options ) {
        var isMethodCall = typeof options === "string",
            args = slice.call( arguments, 1 ),
            returnValue = this;

        // allow multiple hashes to be passed on init
        options = !isMethodCall && args.length ?
            $.widget.extend.apply( null, [ options ].concat(args) ) :
            options;

        if ( isMethodCall ) {
            this.each(function() {
                var methodValue,

 // Rest of the code.

这里,对于未被调用的函数,它不会进入this.each。当我检查this指针时,有一个区别。 对于要调用的函数,this的内容如下所示:

0: div#myGrid
context: document
length: 1
selector: "#mygrid"
__proto__: Object[0]

但是对于未被调用的函数,缺少第一个项目和length属性。

context: document
selector: "#mygrid"
__proto__: Object[0]

可能是什么问题?

0 个答案:

没有答案