2010-05-18 62 views
0

我试图根据用户操作在此插件中更改extraParams是否可以访问JQuery插件的内部属性?

var t = new $.TextboxList('#entSearch', {unique: true, plugins: { 
      autocomplete: { 
       minLength: 3, 
       queryRemote: true, 
       placeholder: false, 
       remote: { 
        url: "{{=URL(r=request, f='call/json/suggest')}}", 
        extraParams: {type: "", guid: ""} 
        } 
       } 
      } 
     }); 

执行以下行引发错误:autocomplete.remote未定义

var tmp = autocomplete['remote']['extraParams']['type']; 

是否有访问插件的这些内部属性,像我将引用他们的字典的方法吗?

+1

你可以将它们定义为变量上面? – alex 2010-05-18 02:47:10

回答

1

将它定义为一个变量,以便您稍后可以访问它。

var plugins = { 
    autocomplete: { 
     minLength: 3, 
     queryRemote: true, 
     placeholder: false, 
     remote: { 
      url: "{{=URL(r=request, f='call/json/suggest')}}", 
      extraParams: {type: "", guid: ""} 
     } 
    }, 
    t = new $.TextboxList('#entSearch', {unique: true, plugins: plugins}); 

然后你就可以访问它,例如:

var tmp = plugins.autocomplete.remote.extraParams.type; 
// ... or ... 
var tmp = plugins['autocomplete']['remote']['extraParams']['type']; 
+0

谢谢 - 我现在可以访问这些值并在'插件'中更新它们,但我无法将它们设置为't'。出于某种原因,我无法以同样的方式访问't':'t.plugins.autcomplete.remote.extraParams.type'。这正是我试图用上面的“自动完成”所做的。任何想法为什么这不起作用? – 2010-05-18 04:00:06

+0

这取决于如何设置TextboxList插件。如果不知道这一点,你无法帮助你。但他们的方式,你试图访问信息绝对不会工作。 – 2010-05-18 06:05:56

相关问题