繁体   English   中英

停止传播使用ASP.Net中的属性定义的JavaScript事件

[英]Stop propagation of a JavaScript event defined using Attributes in ASP.Net

我已经在ASP.Net页面的代码隐藏中为链接定义了客户端单击事件。 这段代码在VB.Net中如下所示,它使用链接控制的Attributes集合来添加此客户端事件。 该事件正在按预期执行,但是我无法获得用于停止事件传播的'event'参数的句柄。

如何访问event参数,以便可以调用stopPropagation方法来防止触发父div的click事件?

Dim link As System.Web.UI.WebControls.LinkButton = DirectCast(sender,
                                                      System.Web.UI.WebControls.LinkButton)

       link.Attributes.Add("onclick", "OnEmployeeClick('" & 
       dataRowItem("EmployeeId").ToString() & "','" & link.ClientID & "'); 
       return false; ")

更新1

正如dandavis所建议的那样,我只是使用了自动可用的event参数,它起作用了。 我添加了event.stopPropagation();新代码event.stopPropagation(); 在代码后面的onclick定义中的OnEmployeeClick方法调用之前。

   Dim link As System.Web.UI.WebControls.LinkButton = DirectCast(sender,
                                                    System.Web.UI.WebControls.LinkButton)

   link.Attributes.Add("onclick", "event.stopPropagation();OnEmployeeClick('" & 
   dataRowItem("EmployeeId").ToString() & "','" & link.ClientID & "'); 
   return false; ")

浏览器会自动将形式参数插入内联事件(在HTML属性中定义的eventevent

那意味着

<div onclick=alert(event.type)> Test </div>

应该在单击时提醒“单击”,并从“魔术” event参数获取该事件类型字符串。

在FF,Ch,IE9中测试。

观看现场演示以测试您自己的浏览器是否兼容: http : //pagedemos.com/s87ynjsgc7pe

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM