0

次のコードがあります

$("#logoutLink").click(function(event) {

    event.preventDefault();

    var dataString = "action=confirm";

    $.ajax({
        type: "POST",
        url: "requests.php",
        data: dataString,
        success: function(msg) {
            if (msg == "success") {
               alert('logged out');
            } else {
                showNotification("error", "" + msg + "");
            }
        },
        error: function() {
            showNotification("error", "Could not log you out at this time, try again.");
        }
    });

    return false;
});

および id="logoutLink" のリンク

ログインシステムがリンクを更新せず、ログアウトリンクであるリンクを含むhtmlコンテンツを追加するため、preventDefaultは初めて機能しません。したがって、アイテムはhtmlに存在しません。これが問題であることはわかっていますが、私の質問は、ページを更新せずにリンク ID logoutLink を使用して html コンテンツが追加されたことをどのように知らせるのでしょうか?

4

3 に答える 3

3

あなたの質問は少し紛らわしいですが、使用live()してイベント ハンドラーをバインドしてみてください。

$("#logoutLink").live('click', function(event) {
    // ...

詳細については、 http://api.jquery.com/live/を参照してください。

于 2012-03-09T21:02:17.360 に答える
2

質問は明確ではありませんが、リンクを動的に追加している場合は.live('click', ...)、または新しい jQuery 1.7を使用する必要があります.on()

于 2012-03-09T21:02:37.623 に答える
0

ログインシステムがリンクを追加した後にのみクリックハンドラーを追加する必要がある$("#logoutLink").click(function(event) {}ため、次のようにします

function addHandlers(){
    $("#logoutLink").click(function(event) {
         event.preventDefault();
         // anything else
    }
}

$(document).ready(function(){
    addHandlers();
});

addHandlers();次に、リンクが追加されたときにも呼び出します

于 2012-03-09T21:03:01.287 に答える