我已经为 ASP.Net 页面代码隐藏中的链接定义了客户端单击事件。此代码位于 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
关于javascript - 停止传播使用 ASP.Net 中的属性定义的 JavaScript 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31630650/