0

ここで何が欠けていますか?

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

クリックしてもアラートが出ない......

4

2 に答える 2

4

document.ready(function() - バインド時に要素が DOM に存在しない場合、イベント ハンドラは要素にアタッチされません。ドキュメントの準備完了関数を使用して、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();
  });
});
于 2012-09-20T19:53:41.603 に答える
1

問題は、JavaScriptが実行されるときに、ページにまだ存在しない要素を参照することです。

DOMの準備ができたらJavaScriptを実行できます(JavaScriptは、ページ上のすべての要素が読み込まれるのを待ってから実行します)。

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

または、JavaScriptをページの最後に配置します(最終的に実行されるときにすべての要素が読み込まれます)。

于 2012-09-20T19:56:25.020 に答える