gpt4 book ai didi

javascript - Extjs4 fieldset.show() 和 fieldset.hide() 不是函数问题

转载 作者:行者123 更新时间:2023-12-03 11:40:39 27 4
gpt4 key购买 nike

我在字段集显示和隐藏功能方面遇到问题。在我的应用程序左侧,我有一个带有更改监听器的组合框。在右侧,我有几个不同的文本字段,它们根据组合框中选定的值显示和隐藏。每个隐藏和显示函数都可以使用字段集,但如果我无法显示/隐藏字段集。字段集引用是可见的,我可以使用 console.log() 函数列出该组件。

这是我的一段代码:

var rigthPanelLeftContainer = {
flex: 1,
minWidth: 200,
defaults: {
xtype: 'textfield',
minWidth: 180,
anchor: '100%'
},
items: [
//some working textfields here
{

xtype: 'fieldset',
labelWidth: 160,
anchor: '100%',
height: 40,
itemId: 'remarkId',
title: 'title'],
hidden : !ifHideIt, //boolean
items: [{
xtype: 'text',
height: 25,
text: 'sometext']
}]
}
]};

var comboBoxConnectors = {
xtype: 'combobox',
fieldLabel: Ext.translations.map['field.label.common'],
store: Ext.state.Manager.get('conTypes'),
editable: false,
queryMode: 'local',
name: 'conType',
itemId: 'conTypeField',
value: connObj === null ? conTypes[0] : connObj.type,
labelWidth: 160,
anchor: '100%',
listeners: {
change: function(obj, newValue, oldValue) {

//many hide/show working on textfield functions

var remarkId = me.query('#remarkId');
console.log(remarkId); //returns my fieldset element
remarkId.hide(); //returns remarkId.hide is not a function
}
}
}

我真的需要你们的帮助,这有什么问题吗?

最佳答案

在您的代码中,您有一条注释指出 me.query( '#remarkId' ) 返回您的 fieldset 元素。这在技术上是不正确的。假设 me.query() 是一个组件查询,您实际返回的是匹配组件的数组。那么,您将收到未定义的函数错误,因为最肯定的是,数组没有 hide() 方法。如果您访问数组中的第一个元素,然后调用 hide() 方法,它应该可以工作。

但是,您可能还应该考虑以不同的方式处理此问题。您可以使用内置的遍历方法来查找正确的组件,而不是使用 query() 获取元素数组(可能始终是一个,但不一定......)。例如,假设组合框和字段集都是同一表单面板的子项,您可以执行如下操作:mycombobox.up( 'form' ).down( 'fieldset#remarkId' )。这基本上指示代码向上遍历组件层次结构到最近的表单,然后向下钻取到表单的第一个后代,该表单是 itemId 为“remarkId”的字段集。这只会为您提供一个组件,因此您不必费心访问组件数组中的组件。

关于javascript - Extjs4 fieldset.show() 和 fieldset.hide() 不是函数问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26295268/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com