将OnClick事件附加到现有JavaScript按钮

时间:2014-07-28 19:42:44

标签: c# javascript asp.net webforms

我希望将一些JavaScript附加到服务器端按钮的onclick。像

这样的东西
 //b is a button
 b.Attributes.Add("onclick", "my.js.here();");

但不消除该按钮上任何可能存在的onclick事件。

编辑:上面代表一个代码隐藏文件(在C#中),它试图将另一个事件监听器添加到已经可能有onclick事件的客户端按钮。

3 个答案:

答案 0 :(得分:1)

我通常会尝试避免使用属性订阅JavaScript事件。相反,我会选择addEventListener或一些抽象(比如jQuery' sclick处理程序)。例如,继续使用jQuery,您可以在ASPX页面中使用此JavaScript:

$('#yourButtonId').click(function() {
      my.js.here();
 });

这有几个优点,主要的是你可以添加处理程序而不会踩到已经存在的处理程序。

可以尝试做一些事情,比如获取属性的现有值,然后用my.js.here();作为前缀,但这似乎是一个不太理想的解决方案。< / p>

答案 1 :(得分:0)

为什么不直接使用按钮元素ID,然后为onclick做一个事件处理程序?

var myBtn = document.getElementById("buttonEl");
myBtn.onclick = function () { 

     alert("Button has been clicked");

}

答案 2 :(得分:0)

使用以下方法

$("#AuthorityLevel").find("a").attr('onclick','my.js.here();');