Вопрос

У меня была куча элементов управления, которые я отображал, скрывал, включал и отключал в зависимости от действий на веб-странице.Все работало, пока я не сложил их в гармошку.Теперь я не могу заставить Javascript иметь возможность обновлять их состояние.У меня есть небольшой пример

это и есть Javascript

 <script type="text/javascript">
  var ctrl = document.getElementById('<%= btmRocp.ClientID %>');

    function ShowPanel(control)
{
    alert('<%= btmRocp.ClientID %>');
    ctrl.disabled = true;
}
</script>   

Это аккордеон

 <form id="form1" runat="server">
    <div>
        <asp:ScriptManager ID="ScriptManager1" runat="server">
        </asp:ScriptManager>
        <cc1:Accordion  ID="MyAccordion"
                        runat="Server"
                        SelectedIndex="0"                      
                       >
         <Panes>
            <cc1:AccordionPane ID="accordianPane0" runat=server>
            <Header>Create New Report </Header>
            <Content>a
            <asp:Button ID="Button1"  onmouseup="ShowPanel('') " runat="server" Text="Button" />            
            <asp:Button ID="btmRocp" runat="server" Text="Button" />
            </Content>
            </cc1:AccordionPane>
            <cc1:AccordionPane ID="accordianPane1"  runat=server>
            <Header>Create New Report </Header>
            <Content>b</Content>
            </cc1:AccordionPane> 
            </Panes>

        </cc1:Accordion>

Мне бы хотелось знать, что я делаю не так здесь, предупреждение выводит правильный идентификатор.

Если я сделаю что-то, где я передаю объект "this" функции, я могу отключить эту кнопку, но мне действительно нужно, чтобы она отключила или скрыла около 10 объектов

У кого-нибудь есть идея?

Пример кода на http://www.riconllc.com/accordian.zip

Это было полезно?

Решение

Каково состояние Аккордеона по умолчанию?рухнул?Я понятия не имею, как работает Accordion, но я подозреваю, что он изменяет HTML DOM таким образом, что при первой загрузке страницы "btmRocp" фактически не присутствует на самой странице, пока она не станет "видимой".То есть это может быть внедрение элементов управления на страницу и с нее в зависимости от состояния accordion .

Ваш лучший способ выяснить это поведение - вставить инструкции "debugger;" на вашу страницу в соответствующие моменты, чтобы проверить текущий DOM в эти моменты времени.

<textbox id="debugbox" onblur="this.value = eval(this.value);"></textbox>

Это хороший способ поработать со скриптом и на вашей странице.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top