2009-12-17 73 views
1

的单击事件我看到有这样的语法来检测任何按钮点击如何捕捉动态生成按钮的jQuery中

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

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

编辑:这似乎很好的按钮,在开始安装,但在我的情况下,我用jQuery动态创建它们。它看起来这些按钮不打这个代码。任何想法

回答

5

您需要绑定“点击”了jQuery“live”功能/事件为工作。我还建议在动态生成的按钮上使用特殊的CSS类或ID。以下是即使从jQuery.com直播的描述。

当您绑定将 绑定到页面上的所有当前和未来 元素(使用事件 代表团),一个“活”事件。例如,如果您绑定了 ,则直接点击 上的所有“li”元素,然后该页面在稍后时间在 处添加另一个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> 
+0

从1.7开始,已弃用,稍后删除。 http://api.jquery.com/category/deprecated/deprecated-1.7/ – 2013-05-16 12:49:34

0

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

+1

在前一种情况下,可能会有多个按钮与类。在后一种情况下,由于ID唯一标识一个元素,因此:按钮是多余的。 – Rich 2009-12-17 23:09:11

+0

这只是部分工作。我更新了这个问题,以便更加明确 – leora 2009-12-17 23:14:23

0

使用了正确的选择,以确定你想要的按钮(http://docs.jquery.com/Selectors) 然后点击添加功能。

$(“:button”)选择所有按钮。你想限制到你需要的特定集合