7

我希望当我点击另一个时变得可见。我正在使用 jQuery 来做这件事,但我并不擅长它。我写了脚本:

    <script type="text/javascript">
        $(document).ready(function () {
            $('.visiblePanel').on('click', function () {
                $('.invisiblePanel').toggle();
            });
        });
    </script>

我通过С#完成的布局:

Panel visiblePanel = new Panel();
visiblePanel.Style.Add("background-color", "red");
visiblePanel.CssClass = "visiblePanel";
Panel invisiblePanel = new Panel();
invisiblePanel.CssClass = "invisiblePanel";

当然,它没有用。但也得到一个错误: 在此处输入图像描述

没有脚本一切都很好。我试图禁用 Just My Code 并得到了:

在此处输入图像描述 真的,我用谷歌搜索了该做什么,但没有成功。你可以帮帮我吗?

PS 在 jsfiddle.net 上我的脚本在工作。 http://jsfiddle.net/ZMxg8/

PPS:问题不在于脚本!VS怎么了??什么意思“调用堆栈只包含外部代码”???

4

3 回答 3

3

您的代码动态生成Panel但不将它们包含在控制树中。

像这样更新您的代码:

Panel visiblePanel = new Panel();
visiblePanel.Style.Add("background-color", "red");
visiblePanel.CssClass = "visiblePanel";
this.Controls.Add(visiblePanel);

Panel invisiblePanel = new Panel();
invisiblePanel.CssClass = "invisiblePanel";    
this.Controls.Add(visiblePanel);

这应该可以解决问题。

但是,我建议您在 aspx 标记中声明此面板。这将更容易维护。

于 2013-07-24T12:28:17.750 回答
1

我找到了解决方案。史蒂夫 B 是对的。错误“调用堆栈仅包含外部代码”通知我调试器无法调试 JavaScript 代码。而“mscorlib.pdb 未加载”是因为当我尝试修复第一个错误时,我禁用了选项中的某些内容。=)感谢大家的帮助。

于 2013-07-26T07:37:19.517 回答
0

试试这个代码:

 $(document).ready(function () {
        $('.visiblePanel').click(function () {
            $('.invisiblePanel').toggle();
        });
    });

C# 代码

        Panel visiblePanel = new Panel();
        visiblePanel.Style.Add("background-color", "red");
        visiblePanel.CssClass = "visiblePanel";
        visiblePanel.Width = 10;
        visiblePanel.Height = 10;
        this.Controls.Add(visiblePanel);
        Panel invisiblePanel = new Panel();
        invisiblePanel.Width = 10;
        invisiblePanel.Height = 10;
        invisiblePanel.CssClass = "invisiblePanel";
        invisiblePanel.Style.Add("background-color", "black");            
        this.Controls.Add(invisiblePanel);
于 2013-07-24T13:02:16.683 回答