3

我有以下情况:

我有两个面板,带有在两者之间切换的链接,这些链接不会回发页面,它们会调用一些淡入淡出面板的 JavaScript 代码,从而改变它们的可见性。

在任一面板中,我都有一个回发页面的按钮,发生的情况是,在我淡入第二个面板后,我的视图状态无效并且我的回发失败。

有没有办法通过 JavaScript 同步这两个面板的可见性使我的视图状态有效?还是我必须回发才能使其正常工作?如果是这样,我可以在没有页面闪烁的情况下回发并很好地淡化面板吗?

编辑:这有点像我的代码,显然我在 div 中有一堆控件

<div id="step_one" class="lt-step-1">
    <asp:Button Text="Entrar" ID="btnPost1" OnClick="btnPost1_Click" ValidationGroup="Step1Val" CssClass="btn btn-primary lt-width-5" runat="server" />
    <a href="#" id="link_Step_Two"><span class="icon-repeat"></span>Step Two</a>
</div>
<div id="step_two" class="lt-step-2 hide">
    <asp:Button Text="Confirmar" ID="btnPost2" OnClick="btnPost2_Click" ValidationGroup="Step2Val" CssClass="btn btn-primary lt-width-5" runat="server" />
    <button type="button" id="btn_cancel_step_two" class="btn">Cancelar</button>
</div>

<script>
    require(['jquery', 'bootstrap'], function ($) {

        'use strict';

        var $stepOne = $('#step_one'),
            $stepTwo = $('#step_two'),
            $allSteps = $('[id^="step_"]'),
            $link_Step_Two = $('#link_Step_Two'),
            $btnCancelStepTwo = $('#btn_cancel_step_two'),


        $link_Step_Two.on('click', function () {
            $allSteps.hide();
            $stepTwo.fadeIn();
        });

        $btnCancelStepTwo.on('click', function () {
            $allSteps.hide();
            $stepOne.fadeIn();
        });

    });
</script>
4

1 回答 1

1

对不起,但我没有足够的积分在上面的 Gnani 之后添加评论。如果它只是丢失了 jquery 事件,请对表单元素使用 jquery委托函数。Delegate 会自动将您的事件与您的选择器挂钩,即使对于将来出现的元素,例如 MS Ajax 重新创建您的链接时也是如此。我一直使用这个技巧。就像是:

$("form").delegate('#link_Step_Two', 'click', function() {
  // Your code.
});

$("form").delegate('#btn_cancel_step_two', 'click', function() {
  // Your code.
});
于 2013-06-19T21:57:35.730 回答