在jQuery中单击按钮时绑定动作不起作用

时间:2012-03-05 22:59:53

标签: javascript jquery

我有一个奇怪的问题,我正在使用jQuery函数(单击)将操作绑定到按钮,当我单击按钮时没有任何反应,怎么回事!这里是我正在使用的代码:`

<script >
    $( '#admin' ).live( 'pageinit',function(event){
    $('#AddButton').click(function(){
            alert("Clicked")
        });​
    });
</script>

1 个答案:

答案 0 :(得分:2)

假设按钮存在于初始页面源中,您需要:

  1. <script>块放在按钮后面的源中的某个位置,或
  2. 将上述代码包装在$(document).ready()处理程序中。
  3. 否则当JS运行时浏览器不会解析按钮的html,因此找不到该按钮。

    如果该按钮最初不存在,即您要动态添加它以响应其他事件,则可以使用:

    $('#AddButton').live('click', function(){ ...
    

    ...类似于您已经为admin元素执行的操作,处理程序将在按钮存在后自动应用于该按钮。

    请注意,虽然从jQuery 1.7版本开始不推荐使用.live(),但如果使用1.7,则应使用.on() method,即使在较旧的jQuery中,.delegate() method也是首选。 API doco for .live()解释了如何转换。