当 e 是 MouseEvent 时,我收到此错误。
涉及有问题的复选框单击事件的 HTML 如下所示:
<ItemTemplate> <tr style="border-top:1px solid #adadad;border-bottom:1px solid #adadad;"> <td> <asp:HiddenField runat="server" id="hfOptionProductID" value='<%#Eval("Key.ProductID")%>' /> <asp:HiddenField runat="server" id="hfOptionModelNumber" value='<%#Eval("Key.BTModel")%>' /> <asp:HiddenField runat="server" ID="hfAssetId" value='<%#Eval("Value.AssetID")%>' /> <p> <%#Eval("Key.Name")%><asp:CheckBox runat="server" id="chbxOption" class="chkOlcs" onclick="chkOlcs_onClick(e);"/> </p> <asp:Panel runat="server" ID="pnlOlcs" class="pnlOlcs" Visible="False"> <asp:CheckBox runat="server" ID="chkDomain" class="chkDomain" onclick="chkDomain_onClick(e)" Text="I want to link my license to a specific domain and its subdomains." /><br/> <asp:TextBox runat="server" ID="txtDomain" class="txtDomain" style="padding: 3px 5px; text-align: center; width: 200px;" placeholder="Enter a domain name" ValidationGroup="OptionValidationGroup" disabled /> <asp:Label runat="server" ID="lblDomainError" class="lblDomain" Visible="False" style="color: red;"/><br/> <asp:CheckBox runat="server" ID="chkAny" class="chkAny" onclick="chkAny_onClick(e)" Text="I do not want to link my license to a specific domain."/><br/> </asp:Panel> <br /> </td> </tr> </ItemTemplate>
在上面的 HTML 中,这是有问题的部分:
<%#Eval("Key.Name")%>
出于某种未知的原因,当我在 Edge 浏览器中的 Visual Studio 中调试运行此程序时,出现错误。
不知何故,e 变得未定义,并且永远不会到达 Javascript 函数调用。
这是 Javascript 函数定义:
function chkOlcs_onClick(e) { var chkOlcs = $('#' + e.target.id); var pnlOlcs = chkOlcs.parent().parent().parent().find('.pnlOlcs'); var isChecked = e.target.checked; if (isChecked) { pnlOlcs.show(); } else { pnlOlcs.hide(); } }
现在更糟的是:当从部署的网页运行时,不会发生错误。
我已经阅读了几乎所有与此错误相关的类似问题,但似乎没有一个适用。我愿意接受任何帮助。
(除非 ASP.NET 做了一些奇怪的事情(我不使用 ASP.NET,你没有将问题标记为关于 asp .net),具有
onclick
属性)e
不是鼠标事件。它是未定义的。错误消息告诉您这一点。事件
是一个鼠标事件,但已被弃用。建议使用
addEventListener code>
而不是内在事件属性(如onclick
)。element.addEventListener('click', chkOlcs_onClick)
将传递鼠标事件作为第一个参数。