调用栈仅包含外部代码。

7

我希望当我点击一个HTML元素时另一个元素能够显示出来。我使用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";

当然,它没有起作用。但也出现了错误: enter image description here 没有脚本一切都很好。我试图禁用"Just My Code"并得到了这个: enter image description here 实际上,我谷歌了一下该怎么做,但没有成功。你能帮帮我吗?
附言:在jsfiddle.net上我的脚本可以工作。 http://jsfiddle.net/ZMxg8/ 再附言:问题不在脚本!VS出了什么问题?什么是"The call stack contains only external code"?

2
jQuery正在浏览器中运行。您必须使用脚本引擎进行调试。我看到Chrome已经启动。请尝试使用Internet Explorer再次运行,并检查您是否可以逐步执行JavaScript代码。 - Steve B
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标记中声明这些面板。这样更易于维护。


我已经包含了那些面板,但是我在这里没有展示代码的这一部分=) 我必须动态声明面板,因为它们的数量不是静态的。 - Sashko Chehotsky

1
我已经找到了解决方案。Steve B是正确的。错误“调用堆栈仅包含外部代码”告诉我,调试器无法调试JavaScript代码。而“mscorlib.pdb未加载”是因为在尝试修复第一个错误时,我在选项中禁用了某些内容。=)感谢所有人的帮助。

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);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接