如何在jquery中捕获动态生成按钮的click事件

leo*_*ora 1 jquery css-selectors

我看到有这种语法可以检测任何按钮点击

<script type="text/javascript">
        $(document).ready(function() {
        $(":button").click(function(event) {
                alert("Thanks for visiting!" + this.value);
            });
        });
    </script>
Run Code Online (Sandbox Code Playgroud)

但是,如果我只想检测页面上的特定按钮怎么办?

编辑:这对于在开始时设置的按钮似乎很好,但在我的情况下,我使用jquery动态创建它们.似乎那些按钮不打这个代码.有任何想法吗

RSo*_*erg 5

您需要将"click"绑定到jQuery" live "函数/事件才能工作.我还建议在动态生成的按钮上使用特殊的CSS类或id.以下是jQuery.com的直播描述.

绑定"实时"事件时,它将绑定到页面上的所有当前和未来元素(使用事件委派).例如,如果您将实时点击绑定到页面上的所有"li"元素,那么稍后会添加另一个li - 该click事件将继续适用于新元素(这不是bind的情况,必须重新绑定所有新元素).

<script type="text/javascript">
   $(document).ready(function() {
      //$(":button") would select all buttons
      //.className would work on an button with a CSS Class assignment of ClassName
      //Below shows how to do it on a specific ID
      $("#MyNewButtonID").live("click", function(event) {
         alert("Thanks for visiting!" + this.value);
      });
   });
</script>
Run Code Online (Sandbox Code Playgroud)