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

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

本文关键字:属性 定义 事件 JavaScript 传播 ASP Net      更新时间:2023-09-26

我在ASP的后台代码中为链接定义了客户端单击事件。网络页面。这个代码是用VB编写的。Net,它使用链接控件的Attributes集合来添加这个客户端事件。此事件正在按预期执行,但我无法获得用于停止事件传播的' event'参数的处理。

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

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参数,并且它工作了。我在代码后面的onclick定义中的OnEmployeeClick方法调用之前添加了event.stopPropagation();的新代码。

   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属性中定义的事件)插入一个形式参数,event .

意味着

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

应该在点击时提醒"click",从"magic"event参数中获取事件类型字符串。

在FF, Ch, IE9中测试。

查看实时演示来测试您自己的浏览器:http://pagedemos.com/s87ynjsgc7pe