如果我将此 JavaScript 放在我的 aspx 页面上,则单击按钮后面板将按预期显示:
<script type="text/javascript">
function ShowPopUp() {
$('#<%= upNewClient.ClientID %>').show();
}
</script>
<asp:Button ID="btnNewClient" runat="server" OnClientClick="javascript: ShowPopUp(); return false;" />
但是如果我尝试在没有该功能的情况下执行此操作,则它不起作用:
<asp:Button ID="btnNewClient" runat="server" OnClientClick="javascript: $'(%<= upNewClient.ClientID %>'.show(); return false;"/>
页面闪烁,我的 JavaScript 控制台中可能会出现错误,但它来来去去的速度太快,我无法阅读它。
那么,为什么完全相同的代码行不能在函数之外工作呢?
编辑: 我已经多次重写了这段代码(我实际上是在后面的代码中尝试这样做),并且在我最初发布之前我输错了它。实际的按钮标签是:
<asp:Button ID="btnNewClient" runat="server" Text="Add New Client" OnClientClick="javascript: $('#<%= upNewClient.ClientID %>').show(); return false;" />
这很快就会在我的 javascript 控制台中闪现出一个错误,我相信是这样的: 未捕获错误:语法错误,无法识别的表达式:#<%= upNewClient.ClientID %>
最佳答案
您缺少内联引号的 #
id 选择器和错误放置的引号。缺少右括号
所以
$'(%<= upNewClient.ClientID %>'.show();
应该是
$('#<%= upNewClient.ClientID %>').show();
关于javascript - 为什么 javascript 行必须在函数中才能工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15451378/