【问题标题】:Give a JavaScript function the event parameter为 JavaScript 函数提供事件参数
【发布时间】:2012-11-24 14:26:00
【问题描述】:

我想在“onclick”事件上运行以下方法:

function dostuff(evt) {
       var currentTarget = evt.currentTarget;
       // do more stuff
    }

在我的链接上,我通过以下方式添加 onclick 事件:

 link.Attributes.Add("onclick", "dostuff()");

但是,在我上面的示例中,evt 参数为空。我想把点击事件解析成JavaScript函数,这样就可以得到currentTarget、srcElement等。

如何在我的 onclick 事件中添加它?

【问题讨论】:

    标签: javascript asp.net html javascript-events


    【解决方案1】:

    使您的onclick 属性如下:

    link.Attributes.Add("onclick", "dostuff.call(this, event)");
    

    • 函数中的this会被绑定元素,

    • event 对象将被传递

    • 它既适用于标准浏览器,也适用于 IE8 及更低版本(包括正在传递的事件对象)

    【讨论】:

    • 解决了我的问题,现在可以使用了。非常感谢! :-) 真的很有帮助。
    【解决方案2】:

    括号是额外的:

    link.Attributes.Add("onclick", "dostuff");
    

    您将"dostuff" 的返回值分配给`"onclick" 事件,而不是将指针分配给函数。

    也不要使用"evt",而是应该使用"event"关键字。使用"srcElement" 属性访问元素。

    function dostuff() {
    
        var currentElement = event.srcElement;
    }
    

    希望对你有帮助。

    【讨论】:

      【解决方案3】:

      试试这个:

      代码隐藏:

      HyperLink1.Attributes.Add("onclick", "return handleHyperLinkClick(this);");
      

      aspx:

      <script type="text/javascript" language="javascript">
      
              function handleHyperLinkClick(hyperlink) {
      
                  return confirm("Do you want to navigate to " + hyperlink.href + " ?");
              }
      </script>
      

      希望这会有所帮助!

      【讨论】:

        猜你喜欢
        • 2015-03-07
        • 2018-05-15
        • 2012-02-03
        • 1970-01-01
        • 1970-01-01
        • 2021-11-27
        • 2018-11-25
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多