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

时间:2009-12-17 23:05:10

标签: jquery css-selectors

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

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

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

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

3 个答案:

答案 0 :(得分:5)

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

  

当你绑定一个“实时”事件时,它会   绑定所有当前和未来   页面上的元素(使用事件   代表团)。例如,如果你绑定   实时点击所有“li”元素   页面然后在a处添加了另一个li   以后的时间 - 点击事件会   继续为新元素工作   (这不是绑定的情况   必须重新绑定所有新元素。)

<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>

答案 1 :(得分:0)

为输入提供ID或类,然后使用$(".class:button")$("#id:button")

答案 2 :(得分:0)

使用正确的选择器来识别您想要的按钮(http://docs.jquery.com/Selectors) 然后添加点击功能。

$(“:button”)选择所有按钮。您希望将其限制为您需要的特定集合