使用jquery对标记的单击事件执行操作

时间:2012-09-20 19:52:48

标签: javascript jquery

我在这里缺少什么?

<script type="text/javascript" src="static/js/jquery-1.7.2.js"></script>
        <script>

               $("a").click(function() {
                  alert("Handler for .click() called.");
                  window.location.reload();
            });

    </script>
           <li><a id='fu' href="change_password" target="content">Change Password</a>
           <li><a id='fu' href="delete_user" target="content">Delete User</a></li>

我点击了,我没有警觉......

2 个答案:

答案 0 :(得分:4)

document.ready(function() - 如果绑定时dom中不存在该元素,则不会将任何事件处理程序附加到该元素。使用document ready函数等待dom准备好后再尝试将事件处理程序绑定到元素

// this is equivalent to $(document).ready(function()
$(function(){ // <-- wait for dom ready before binding events
 $("a").click(function(e) {
        //e.preventDefault(); //<-- not sure if you want anchor action - if not add this in
        alert("Handler for .click() called.");
        window.location.reload();
  });
});

答案 1 :(得分:1)

问题是当你的JavaScript执行时,它指的是页面上不存在的元素。

您可以在DOM准备就绪时执行JavaScript(您的JavaScript将在执行前等待页面上的所有元素加载):

<script>
$(document).on("ready", function(){
    $("a").click(function() {
        alert("Handler for .click() called.");
        window.location.reload();
    });
});
</script>

或者将JavaScript放在页面的末尾(所有元素将在最终运行时加载)。